栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 架构设计

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

架构设计 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

文章目录
  • 前言
  • 一、判断系统架构
  • 二、定义宏
  • 总结


前言

由于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 

int 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_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指定要链接到项目中的库
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/909387.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号