2017-09-30 66 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