标题:Qextserialport 1.2 + Qt 4.5.2 + 如何在Linux下能正常運行
作者:omegas
日期:2009-09-04 16:41
内容:
各位/楼主好,
本人用Qt + Qextserialport 成功在Window下的COMPORT(COM1, COM2..etc) 傳送和接收数據但把代碼copy去Linux後便馬上出現問題,問題如下:
comm 在 .h 里定義為 => Qextserialport *comm
在 .cpp 的一行出現錯誤
comm = new Qextserialport();
error ===>undefined reference to Qextserialport::Qextserialport()
另一个錯誤是collect2:ld returned 1 exit status
希望各位能幫幫小弟解决或提供保貴意見...謝謝
#1 [dbzhang800 09-04 17:10]
你链接这个库了么?
另外, Qextserialport 这大小写问题你是拼写错误吧?
#2 [omegas 09-05 11:37]
謝謝你的意見,
1. 名字大小寫沒錯.
2. 你指連接是不是指 .pro里的以下語句,我已加了
CONFIG(debug, debug|release):LIBS += -lqextserialportd
else:LIBS += -lqextserialport
***請問我還差甚麼呢或沒連接甚麼? 我.pro原文如下:
# -------------------------------------------------
# Project created by QtCreator 2009-08-25T13:15:06
# -------------------------------------------------
QT += network \
opengl \
sql \
webkit \
xml \
xmlpatterns
TARGET = console
TEMPLATE = app
DEPENDPATH += .
INCLUDEPATH += ../..
QMAKE_LIBDIR += ../../build
CONFIG(debug, debug|release):LIBS += -lqextserialportd
else:LIBS += -lqextserialport
unix:DEFINES = _TTY_POSIX_
win32:DEFINES = _TTY_WIN_
SOURCES += main.cpp \
console.cpp \
devicesetting.cpp
HEADERS += console.h \
devicesetting.h \
ui_console.h \
ui_devicesetting.h
FORMS += console.ui \
devicesetting.ui
RESOURCES += console.qrc
#3 [dbzhang800 09-05 19:50]
恩,你或许要先说一下 你 的 -lqextserialportd -lqextserialport放在哪个目录内了,怀疑链接器没在库目录内找到它
#4 [omegas 09-07 14:54]
-lqextserialportd -lqextserialport 在 ../../build
#5 [omegas 09-08 12:45]
請問是不是在Linux下運行QextSerialPort 要重新compile和qmake & make 一次?因我重新Rebuild Qextserialport project 後就没有了以上的錯誤........不過卻產生另一个錯誤,但我相信這个錯誤比較容易處理,現在Rebuild Qextserialport 之後在Build目錄里產生很Lib files 如 Libqextserialportd.so.1 Libqextserialportd.so.2.....etc. 當我重新Rebuild 我的project 時没有問題但run 時出現以下錯誤..
error while loading shared libraries
libqextserialportd.so.1:cannot open shared object file:No such file or directory
.....exit with code 127
但我發現明明有這个檔案,為甚麼qt找不到????謝謝