当前位置:   article > 正文

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

qmake_host.arch


前言

由于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")
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

注意!!!

contains(){ 必须在同一行
else{ 必须在同一行

二、定义宏

pro 添加如下代码:

#定义整形变量
DEFINES += LENGTH=3
#定义字符串变量,字符串必须使用 \\\" 引起来
DEFINES += APP_VERSION=\\\"2.1\\\"
  • 1
  • 2
  • 3
  • 4

使用代码如下:

#include <stdio.h>

int main(int argc, char *argv[])
{
	// 和正常宏定义一样使用
    printf("Length: %d\n", LENGTH);
    printf("APP Version: %s\n", APP_VERSION);

    return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

输出:

Length: 3
APP Version: 2.1
  • 1
  • 2

注意!!!

宏定义赋值的等号“=”两边不能有空格,即写成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指定要链接到项目中的库
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/299921
推荐阅读
相关标签
  

闽ICP备14008679号