我试图链接所有在同一目录中的库并使用以下命名约定:
libFoo64.a # 64-bit release
libFoo32.a # 32-bit release
libFood64.a # 64-bit debug
libFood32.a # 32-bit debug
我可以在QMake .pro文件中放入什么,以便为每个构建找到正确的库?
我正在使用QtCreator 4.9.0(MSYS2 build)并启用了默认套件:
对于32位调试版本,我将选择32位套件,然后选择下面的版本配置等。
我看到this question表示如何为Debug vs. Release设置不同的QMake选项,但我不知道如何扩展它以使用不同的选项,具体取决于使用的Kit。
基于this question,我使用.pro文件中的以下代码成功实现了目标:
contains(QT_ARCH, i386) {
CONFIG(debug, debug|release) {
message("32-bit debug")
LIBS += -lFooBard32 -lFooBazd32 -lFooQuxd32 -lFooCorged32 -lFooGraultd32
}else {
message("32-bit release")
LIBS += -lFooBar32 -lFooBaz32 -lFooQux32 -lFooCorge32 -lFooGrault32
}
}else {
CONFIG(debug, debug|release) {
message("64-bit debug")
LIBS += -lFooBard64 -lFooBazd64 -lFooQuxd64 -lFooCorged64 -lFooGraultd64
}else {
message("64-bit release")
LIBS += -lFooBar64 -lFooBaz64 -lFooQux64 -lFooCorge64 -lFooGrault64
}
}
虽然它不是特别漂亮,但它有效。
我还必须修改我的套件配置,以便32位编译器启用32位QT(即使我正在使用非QT应用程序,我只是使用QtCreator,因为我喜欢IDE,我以前没有甚至安装了32位QT)。 QT_ARCH
变量似乎基于套件中配置的“Qt版本”,而不是套件中选择的实际编译器。