Linux qt pro文件判断系统架构以及定义宏

9 篇文章 0 订阅
9 篇文章 1 订阅


前言

由于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_PWDMakefile生成的路径
PRO_FILE_PWDpro项目文件所在的路径
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指定要链接到项目中的库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Li_Zhi_Yao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值