标题:软件发布和QextSerialPort静态编译的问题
作者:tumblm
日期:2009-09-30 20:01
内容:
开发环境
Eclipse+MinGW+QT4.5
static compile
这一步没有错,我发布了其他小程序,没有问题
目标软件是一个接受串口信息并且实时显示
我把QextSerialPort也编译成了静态库
libqextserialport.a
qextserialport.prl
但是没有lib文件,不知道对不对
我的.pro文件,
TEMPLATE = app
TARGET = test
QT+= core gui
HEADERS += test.h
SOURCES += main.cpp \
test.cpp
FORMS += test.ui
INCLUDEPATH += G:\Qt\4.5.2\include\qextserialport
LIBS+= -LG:\Qt\4.5.2\lib\qextserialport -lqextserialport
win32:DEFINES= _TTY_WIN_ QWT_DLL QT_DLL
但是编译的时候总是出来一大堆这样的信息,
release/test.o(.text+0x9d5):test.cpp: undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
release/test.o(.text+0xa04):test.cpp: undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
release/test.o(.text+0xa4c):test.cpp: undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
release/test.o(.text$_ZN12Ui_testClass7setupUiEP7QWidget+0x5d):test.cpp: undefined reference to `_imp___ZNK7QObject10objectNameEv'
release/test.o(.text$_ZN12Ui_testClass7setupUiEP7QWidget+0xbc):test.cpp: undefined reference to `_imp___ZN7QString8fromUtf8EPKci'
release/test.o(.text$_ZN12Ui_testClass7setupUiEP7QWidget+0xe8):test.cpp: undefined reference to `_imp___ZN7QObject13setObjectNameERK7QString'
最后报错如下:
release/test.o(.text$_ZN5QListI7QStringE6appendERKS0_+0x12a):test.cpp: undefined reference to `_imp___ZN7QString4freeEPNS_4DataE'
collect2: ld returned 1 exit status
mingw32-make[1]: *** Error 1
mingw32-make: *** Error 2
不知道是我哪里设置错了,还是QextSerialPort不能被静态发布在 ..
#1 [tumblm 10-06 16:43]
up..
#2 [rqzrqh 10-06 17:21]
我想可能是因为你没有在指定这是静态编译,默认会去找动态库,但是你又没有动态库,是成功的,但是链接的时候会因为找不到函数的具体实现而出错
#3 [tumblm 10-06 18:15]
多谢,你说的库是指QextSerialPor么?
怎么指定静态库,下面的语句应该怎么改?
INCLUDEPATH += G:\Qt\4.5.2\include\qextserialport
LIBS+= -LG:\Qt\4.5.2\lib\qextserialport -lqextserialport
win32:DEFINES= _TTY_WIN_ QWT_DLL QT_DLL