标题:我使用的是mini2440学习板,如何将qt4的范例spreadsheet移植上去?
作者:xphcyh
日期:2010-08-12 17:30
内容:
买了mini2440学习板,按照用户手册学习了附录1“嵌入式图形系统Qtopia-2.2.0 快速移植”
也成功能在mini2440上添加hello world应用程序并运行!!
最近也买了本C++ GUI QT4学习,第三章有个spreadsheet范例程式,理解完后想像hello world那样添加到mini2440系统上,发现不是那么简单:
论坛看了没有找到相关的方法,可能自己笨找不到,哎~~
就想先在x86上编译,也编译不了:
# make
g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -Os -DQTOPIA_DATA_LINKING -DQCONFIG=\"qconfig-qpe.h\" -DQTOPIA_TARGET=\"hello\" -DQTOPIA_TRTARGET=\"hello\" -DQT_NO_DEBUG -I/opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-generic-g++ -I. -I/opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/include -I/opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -I.ui/release-shared/ -I.moc/release-shared/ -o .obj/release-shared/hello.o hello.cpp
hello.cpp:1:24: 错误:QApplication:没有那个文件或目录
hello.cpp:3:26: 错误:QPushButton:没有那个文件或目录
hello.cpp: In function ‘int main(int, char**)’:
hello.cpp:9: 错误:‘QApplication’在此作用域中尚未声明
hello.cpp:9: 错误:expected `;' before ‘app’
hello.cpp:11: 错误:‘QPushButton’在此作用域中尚未声明
hello.cpp:11: 错误:expected `;' before ‘b’
hello.cpp:13: 错误:‘b’在此作用域中尚未声明
hello.cpp:15: 错误:‘QObject’未声明
hello.cpp:15: 错误:‘clicked’在此作用域中尚未声明
hello.cpp:15: 错误:‘SIGNAL’在此作用域中尚未声明
hello.cpp:15: 错误:‘app’在此作用域中尚未声明
hello.cpp:15: 错误:‘quit’在此作用域中尚未声明
hello.cpp:15: 错误:‘SLOT’在此作用域中尚未声明
hello.cpp: At global scope:
hello.cpp:5: 警告:未使用的参数‘argc’
hello.cpp:5: 警告:未使用的参数‘argv’
make: *** [.obj/release-shared/hello.o] 错误 1
那位大侠能帮忙解释下啊!!谢谢了
#1 [xphcyh 08-12 17:30]
我直接新建一个目录chap03存放spreadsheet程序
使用的liunx系统为Fedora9
x86和arm交叉编译器应该都可以,因为hello word可以编译成功!
# source /opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/setQpeEnv
# qmake -spec /opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-arm-g++ -o Makefile *.pro
Project ERROR: Please set a target in /root/qt_study/chap03_arm/spreadsheet
//这里提示没有目标文件,在spreadsheet.pro最后一行添加TARGET = spreadsheet后重新qmake
# qmake -spec /opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-arm-g++ -o Makefile *.pro
# make
/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/bin/uic gotocelldialog.ui -o .ui/release-shared/gotocelldialog.h
/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/bin/uic sortdialog.ui -o .ui/release-shared/sortdialog.h
arm-linux-g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -Os-DQT_NO_QWS_VFB -DQTOPIA_DATA_LINKING -DQCONFIG=\"qconfig-qpe.h\" -DQTOPIA_TARGET=\"spreadsheet\" -DQTOPIA_TRTARGET=\"spreadsheet\" -DQT_NO_DEBUG -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/mkspecs/qws/linux-arm-g++ -I. -I. -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/include -I/opt/FriendlyARM/mini2440/arm-qtopia/qtopia-2.2.0-FriendlyARM/qt2/include -I.ui/release-shared/ -I. -I. -I.moc/release-shared/ -o .obj/release-shared/cell.o cell.cpp
cell.cpp:1:17: error: QtGui: No such file or directory
In file included from cell.cpp:3:
cell.h:4:28: error: QTableWidgetItem: No such file or directory
In file included from cell.cpp:3:
cell.h:7: error: expected class-name before '{' token
cell.h:11: error: ISO C++ forbids declaration of 'QTableWidgetItem' with no type
cell.h:11: error: expected ';' before '*' ..
#2 [xphcyh 09-01 09:39]
已经移植成功,可以参考
http://www.arm9home.net/read.php?tid-7639.html
#3 [zdzdzq 05-06 17:06]
好东西,谢谢了。