7

再会!我有一个 qt 项目,我想使用 .pro 文件条件对其进行自定义。值得注意的是,我想使用一个 .pro 文件来获得多个输出,如下所示:

DEFINES += APP1=0 APP2=1
DEFINES += TYPE=APP1
if(TYPE == APP1) {
LIBS += <LIB1>
DESTDIR = <DIR1>
}
else {
LIBS += <LIB2>
DESTDIR = <DIR2>
}

但是当我尝试构建我的项目时,运行 qmake 时出现以下错误:

解析错误('else')

如何正确执行?

4

2 回答 2

12

存储在CONFIG变量中的值由 特殊处理qmake。每个可能的值都可以用作范围的条件。因此,您的项目文件可以简单地编写为:

CONFIG += APP1

APP1 {
  LIBS += <LIB1>
  DESTDIR = <DIR1>
} else {
  LIBS += <LIB2>
  DESTDIR = <DIR2>
}
于 2013-01-22T12:05:29.417 回答
5

我只想注意关于条件的一件事确保大括号不是同一行。否则会失败

好的

CONFIG += opencv_32_bit

opencv_32_bit {

} else {

}

将失败

CONFIG += opencv_32_bit

opencv_32_bit 
{

}
else
{

}

我不知道为什么,但我遇到了这个问题,因为我更喜欢下一行的大括号

于 2016-12-22T11:51:15.407 回答