2017-09-30 98 views
0

我有一個需要提升的Qt項目。該項目在Linux中正常工作,但在Windows上編譯出現了一些困難。我已經能夠使其工作,但不正確,並困擾着我。帶升壓的Qt項目

這裏的.pro的相關部分(工作)

win32{ 
    INCLUDEPATH +=C:\Boost\Boost 
    LIBS += "C:\Boost\Boost\stage\lib\libboost_system-mgw53-mt-1_65_1.a" 
    LIBS += -lws2_32 
} 

這並不工作,但應根據我在網上找到的文檔。

win32{ 
    INCLUDEPATH +=C:\Boost\Boost 
    LIBS += -LC:\Boost\Boost\stage\lib -lboost_system-mt 
    LIBS += -lws2_32 
} 

注意:Boost是使用與Qt Creator分發的mingw編譯的。

+0

不確定,但爲了清晰起見,您遇到的錯誤是什麼? – MrEricSir

+0

:-1:錯誤:無法找到-lboost_system-MT和 collect2.exe:-1:錯誤:錯誤:LD返回1退出狀態 (從Qt Creator中的問題部分複製粘貼) – KingofGamesYami

回答

0

我相信我找到了解決方案!我注意到\ stage \ lib中的每個boost庫都有兩個副本。

libboost_system-mgw53-mt-1_65_1.alibboost_system-mgw53-mt-d-1_65_1.a

我編譯使用兩個項目,而前者有一些警告,後者沒有。從允許的文件夾-lboost_system-mt中刪除libboost_system-mgw53-mt-1_65_1.a即可正常工作。

我不知道爲什麼我有這兩個文件,但這無疑是由於我編譯提升摸索。

+1

'-d '代表* debug *版本,而不是* release *。參見[圖書館命名](http://www.boost.org/doc/libs/1_65_1/more/getting_started/windows.html#library-naming)。 –

+0

嗯......它似乎輸出調試和發佈是提升的默認值。我想知道爲什麼這使混淆。 – KingofGamesYami