error: undefined reference to `_imp___ZN11QSerialPortC1EP7QObject' 一場因爲動態庫引起的慘案

      故事的背景......

      我用qt爲公司寫了一個調試工具,當時是vs2015+qt5.7這麼一個環境配置。後來接手另一個項目做維護開發,那個項目是Qt4.8.6的庫。配置過qt4.8.6的庫之後,原來的qt5.7就不能用了。原來的工具也就沒有在維護。

     可是最近頻繁有調試軟件的需求,所以我想利用原來調試工具的API,在qt4.8.6的環境下修修改改,把調試工具搞起來。可是寫道串口這一步就出問題了:

在走到

 m_port = new QSerialPort();

這一步的時候一直提示錯誤

 error: undefined reference to `_imp___ZN11QSerialPortC1EP7QObject'

咋回事?百度?答案說是在頭文件加上

Qt += SerialPort

可是加上之後還是不行。最後經過朋友指點,發現Qt Creator所認識的庫文件是.a和.so,添加方式有兩種:

1、在.pro文件中添加

LIBS += -L$$PWD/lib/ -lQComConn

2、另一種方式是選擇項目,郵件,添加庫。

最後編譯,運行通過。很小的變化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章