- 前言
- 一、判断系统架构
- 二、定义宏
- 总结
前言
由于Linux平台项目需要同时在 x86 和 arm64 上编译,并且需要指定不同的包含路径,并且 pro 文件需要定义宏,特此记录一下
一、判断系统架构
pro 添加如下代码:
#函数原型为contains(variablename, value),如果 variablename 包含 value 则返回成功
#QMAKE_HOST.arch:qmake变量,计算机架构
#x86_64:终端输入 lscpu 可以参看当前计算机架构,x86 是 x86_64,arm64 是 aarch64,或者直接 message($$QMAKE_HOST.arch) 输出到概要信息
contains(QMAKE_HOST.arch, x86_64){
message("编译平台: x86")
}else{
message("编译平台: arm64")
}
注意!!!
二、定义宏contains(){ 必须在同一行
else{ 必须在同一行
pro 添加如下代码:
#定义整形变量 DEFINES += LENGTH=3 #定义字符串变量,字符串必须使用 \" 引起来 DEFINES += APP_VERSION=\"2.1\"
使用代码如下:
#includeint main(int argc, char *argv[]) { // 和正常宏定义一样使用 printf("Length: %dn", LENGTH); printf("APP Version: %sn", APP_VERSION); return 0; }
输出:
Length: 3 APP Version: 2.1
注意!!!
宏定义赋值的等号“=”两边不能有空格,即写成DEFINES += LENGTH = 3会编译报错
总结
以上就是今天要讲的内容,主要是记录了两个小知识点,方便以后查阅,特此记录一下。
另外,附上我开发中用到的qmake实用变量
| 变量 | 含义 |
|---|---|
| TARGET | 生成目标的名字 |
| DESTDIR | 目标输出文件路径 |
| PWD | 当前文件(.pro或.pri)所在的路径 |
| OUT_PWD | Makefile生成的路径 |
| PRO_FILE_PWD | pro项目文件所在的路径 |
| QMAKE_HOST.arch | 计算机架构 |
| QMAKE_HOST.os | 计算机系统 |
| QMAKE_HOST.cpu_count | 计算机CPU核心数 |
| QMAKE_HOST.name | 计算机名 |
| QMAKE_HOST.version | 系统版本(数字形式) |
| QMAKE_HOST.version_string | 系统版本(字符串形式) |
| QMAKE_POST_LINK | 编译链接后自动执行命令 |
| DEFINES | 编译器定义的预处理器宏,类似于gcc -D 选项 |
| INCLUDEPATH | 包含头文件路径 |
| LIBS | 指定要链接到项目中的库 |



