赞
踩
由于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\\\"
使用代码如下:
#include <stdio.h>
int main(int argc, char *argv[])
{
// 和正常宏定义一样使用
printf("Length: %d\n", LENGTH);
printf("APP Version: %s\n", 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 | 指定要链接到项目中的库 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。