2009-07-15 40 views
24

我使用的是Qt Creator,並且有一個依賴於C++靜態庫項目的Qt GUI項目。我想將GUI應用程序的發行版與.lib的發行版以及GUI應用程序的調試版與debug .lib鏈接起來。我已經發現瞭如何通過包括像我.pro文件下面一行添加額外的庫添加到項目:用qmake/Qt Creator與調試/發佈庫鏈接

LIBS += -L./libfolder -lmylib.lib

但我不能看我怎麼可以使用不同的-L命令發佈和調試建立。

qmake有支持嗎?

回答

22

在項目文件中,你可以做這樣的事情

debug { 
    LIBS += -L./libfolder -lmydebuglib.lib 
} 

release { 
    LIBS += -L./libfolder -lmyreleaselib.lib 
} 

如果DEBUG已經被添加到配置QMAKE變量調試括號內的位時,釋放括號內類似的東西,包括如果RELEASE已被添加到CONFIG變量中。

您還可以使用!「調試」,而不是「釋放」(即當調試不是在config)

你可以找到QMAKE here更多信息。

+2

請注意,如果您將大括號放在下一行中,它會窒息... :-( – nus 2011-03-12 12:40:05

+1

對於Windows也是如此?如果我在Lib文件的路徑中有空間,那麼該怎麼辦? – 2013-05-22 12:53:04

42

正常

debug:LIBS += ... 
else:LIBS += ... 

解決方案休息時,用戶簡單地使用CONFIG += debugCONFIG += release調試和發佈版本之間切換(和他們做,沒有人記得CONFIG -= release release_and_debugCONFIG += debug :)說。

這是規範的方式對範圍debug

CONFIG(debug, debug|release) { 
    # debug 
    QMAKE_LIBDIR += "path/to/debug/lib" 
} else { 
    # release 
    QMAKE_LIBDIR += "path/to/release/lib" 
} 

參看the qmake docs

編輯2013-11-17:請勿在LIBS中使用-Lfoo。規範的方法是將路徑(不包括-L)添加到QMAKE_LIBDIR