Qt Pro文件的qmake关键字整理

1.DESTDIR

用于致命编译的目标文件的输出路径。

win32{
    DESTDIR = ../../Lib/WIN32
}
unit{
  DESTDIR = ../../Lib/unix
}

2.TARGET

目标名称。不包括后缀名。后缀名会根据TEMPLATE,平台自动增加。

如果需要我调试版本的库文件增加d后缀,那么可以用如下方法:

CONFIG(debug,debug|release){
    TARGET = $$join(TARGET,,,d)
}

3.TEMPLATE

项目模版,一般在创建时QtCreatorhi自动帮你写入对应的参数

app-建立一个应用程序的makefile。这是默认值,所以如果模版没有被指定,这个将被使用。
lib-建立一个库的makefile。
vcapp-建立一个库的Visual Studio项目文件。
subdirs-这是一个特殊的模版,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。

4.INCLUDEPATH

头文件搜索路径

5.CONFIG

配置变量指定了编译器索要使用的选项和所需要被连接的库。配置变量中可以添加任何东西,但只有下面这些选项可以被qmake识别。

release-引用程序将以release模式连编。如果“debug”被指定,他将被忽略。
debug-应用程序将以debug模式连编。
warn_on-编译器会输入尽可能多的警告信息。如果“warn_off”被指定,它将被忽略。

下面这些选项定义了索要连编的库/应用程序的类型

qt-应用程序是一个Qt应用程序,并且Qt库将会被连接。
thread-应用程序是一个多线程应用程序。
x11-应用程序是一个X11应用程序或库。
windows-只用于“app”模版:应用程序是一个Windows下的窗口应用程序。
console-只用于“app”模版:应用程序是一个Windows下的控制台应用程序。
dll-只用于“lib”模版:库是一个共享库。
staticlib-值用于“lib”模版:库是一个静态库。
plugin-只用于“lib”模版:库是一个插件,这将会使dll选项生效。

例如,如果你的应用程序使用Qt库,并且你想把它连编为一个可调试的多线程应用程序,你的项目文件应该会有西面这样:

CONFIG += qt thread debug

6.其它关键字

HEADERS-应用程序中的所有头文件的列表。
SOURCES-应用程序中的所有源我那件的列表。
FORMS-应用程序中的所有.ui文件(由Qt设计器生成)的列表。
LEXSOURCES:应用程序中的所有lex源文件的列表。
YACCSOURCES-应用程序中所有yacc源文件的列表。

DEPENDPATH-用用程序所依赖的搜索路径。
VPATH-寻找补充文件的搜索路径。
RC_FILE-只有Windows需要:应用程序的资源文件。
RES_FILE-只有Windows需要:应用程序索要连接的资源文件。

7.qmake操作符

“=”操作符      分配一个值给一个变量
“+=”操作符     向一个变量的值的列表中添加一个值
“-=”操作符      从一个变量的值的列表中移去一个值
“*=”操作符      仅仅在一个值不存在于一个变量的值的列表中的时候,把它添加进去
“~=”操作符      替换任何与指定的值的正则表达式匹配的任何值 DEFINES ~= s/QT_[DT].+/QT

8.内置函数

join函数

join(variablename,glue,before,after)这将会在variablename的各个值中间加入glue。
如果这个变量的值为非空,那么就会在值的前面加一个前缀before和一个后缀after。
只有variablename是必须的字段,其它默认情况下为空串。如果你需要在glue、before或者after中使用空格的话,你必须提供它们。

member函数

member(variablename,position)这将会放置variablename的列表中的position位置的值。
如果variablename不够长,这将会返回一个空串。
variablename是唯一必须的字段,如果没有指定位置,则默认为列表中的第一个值。

find函数

find(variablename,substr)这将会放置variablename中所有匹配substr的值。
substr也可以是正则表达式,而因此将被匹配。

 

“=”操作符      分配一个值给一个变量
“+=”操作符     向一个变量的值的列表中添加一个值
“-=”操作符      从一个变量的值的列表中移去一个值
“*=”操作符      仅仅在一个值不存在于一个变量的值的列表中的时候,把它添加进去
“~=”操作符      替换任何与指定的值的正则表达式匹配的任何值 DEFINES ~= s/QT_[DT].+/QT

posted @ 2022-04-01 16:19  AlexSun_2021  阅读(243)  评论(0编辑  收藏  举报