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