首页| 论坛| 消息

标题:QT自定制Widget开发流程
作者:obrire
日期:2006-03-23 15:37
内容:

平台:Windows XP
MinGW
QT-WIN32 4.1.1
K:\QTSDK\oms>gcc -v
Reading specs from K:/MinGW/bin/../lib/gcc/mingw32/3.4.2/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=
mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable
-languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --e
nable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-ja
va-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchroniz
ation --enable-libstdcxx-debug
Thread model: win32
gcc version 3.4.2 (mingw-special)
此文不能保证在GCC-4.0以上可以顺利通过,但用3.4编译时基本上接近4.0。
在编译Linux 2.4的内核时,不见得4.0就能通过,4.0的语法检查更严格,且
速度也要快一些,这是可以理解的。此方案不适合于Microsoft的cl和nmake。

在此案例中,最初将analogclock.h放在当前路径下,是不正确的。
因为当最初执行qmake -project时,qmake会自动扫描当前路径
及其下子目录的.c/.cpp./cxx和.h/.hpp文件,这样会在project
文件中生成诸如以下格式的文件内容。

HEADERS += colorswatch.h mainwindow.h oms.h toolbar.h plugins_inc/analogclock.h
FORMS += oms.ui
SOURCES += colorswatch.cpp main.cpp mainwindow.cpp toolbar.cpp
RESOURCES += mainwindow.qrc
而plugins_inc是额外的plugins的声明文件目录,不需要Makefile对其做
更多处理,因此在使用qmake -o Makefile xxx.pro之前,应将其删除。
当然,当前的版本,在存在有project文件的目录中,直接执行qmake就可以
生成Makefile了。
如果不删除,则会出现以下错误,自动生成的Makefile会认为存在有moc
编译过的moc_analogclock.cpp。
specs/win32-g++" -o release\moc_analogclock.o release\moc_analogclock.cpp
release\moc_analogclock.cpp:36: error: definition of static data member 'AnalogC
lock::staticMetaObject' of dllimport'd class.
release\moc_analogclock.cpp:36: warning: 'AnalogClock::staticMetaObject' defined
locally after being referenced with dllimport linkage
mingw32-make[1]: *** [release\moc_ ..

回复 发表
主题 版块