2009-07-15 38 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