一、属性 qmake 有一个持久化配置系统,它允许在 qmake 中设置一次属性,并在每次调用 qmake 时查询它。...可以在 qmake 中设置一个属性: qmake -set PROPERTY VALUE 您可以从 qmake 检索此信息,如下所示: qmake -query PROPERTY qmake...-query //列出内置属性 以下是内置属性: QMAKE_SPEC:在主机构建期间解析并存储在 QMAKESPEC 变量中的主机 mkspec 的短名称 QMAKE_VERSION:qmake...QMAKESPEC 环境变量可以包含以下内容: 包含 qmake.conf 文件的目录的完整路径。在这种情况下,qmake 将从该目录中打开 qmake.conf 文件。...QMAKE_EXT_H:使 qmake 将所有带有这些后缀的文件解释为 C 和 C++ 头文件。
英文文档连接: http://qt-project.org/doc/qt-5/qmake-manual.html http://qt-project.org/doc/qt-5/qmake-overview.html...由于qmake manual和overview 两章的内容都不多就把它们放在一起翻译了出来 qmake 指南 qmake 是帮助简化跨平台项目开发的构建过程的工具,qmake能自动生成Makefile...Building Common Project Types Running qmake Platform Notes qmake Language Advanced Usage Using Precompiled...你也可以用qmake生成项目文件。更全面的qmake命令行参数描述,请参阅 Running qmake。 qmake的基本配置功能可以处理大多数的跨平台项目。...在配置构建过程时qmake使用的相关环境变量的详细信息,请查看 Configuring qmake.
修改qtbase/mkspecs/linux-arm-gnueabi-g++/中的qmake.conf文件 这个文件默认的内容是: # # qmake configuration for building.../common/g++-unix.conf) # modifications to g++.conf QMAKE_CC = arm-linux-gnueabi-gcc QMAKE_CXX...= arm-linux-gnueabi-g++ QMAKE_LINK = arm-linux-gnueabi-g++ QMAKE_LINK_SHLIB...= arm-linux-gnueabi-g++ # modifications to linux.conf QMAKE_AR = arm-linux-gnueabi-ar...cqs QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy QMAKE_NM = arm-linux-gnueabi-nm
记录QMake宏定义的使用。...+= DEBUG 使用: #ifdef DEBUG qDebug() Debug<"; #endif // output: >Debug< 定义宏值(带双引号字符): # QMAKE_COPY...=> cp DEFINES += "COPY_CMD_LINE=\"\\\"$$QMAKE_COPY\\\"\"" 使用: qDebug() << COPY_CMD_LINE; // output
操作模式 qmake可以帮助我们在跨平台构建应用程序的时候变得更简单,我们可以通过写简单的几行必要的信息来生成构建文件,我们可以在任何的软件项目中使用qmake qmake基于pro文件生产构建文件...,pro文件是由开发者创造的,它的用法也很方便,但是越复杂的应用程序,需要的pro文件越复杂 qmake的包含一些附加特性来支持Qt的开发,他将会自动的包含对于moc和uic的规则 qmake同样也可以在开发者不更改...,你可以设置预编译头文件来提高项目的编译速度,详细的请看 Using Precompiled Headers 让我们开始试试吧 这个教程将叫你qmake的基础,下面的几个子章节将简单介绍下qmake的用法...如果你设置一个不同的名字,你可以这样设置 TARGET = helloword 现在你可以使用qmake来生成你应用的Makefile,在你的pro文件中,你可以写下 qmake -o Makefile...,他们允许构建过程可以被优化,提供有用的诊断信息,并且可以被用于指定项目的目标平台 请求语法 下面的语法来执行qmake qmake [mode] [options] files 操作模式 qmake支持两个不同的操作模式
/qt-everywhere-src-5.12.1/qtbase/mkspecs/linux-aarch64-gnu-g++/qmake.conf 默认配置文件: QMAKE_CC...= arm-linux-gnueabi-gcc QMAKE_CXX = arm-linux-gnueabi-g++ QMAKE_LINK = arm-linux-gnueabi-g...++ QMAKE_LINK_SHLIB = arm-linux-gnueabi-g++ QMAKE_AR = arm-linux-gnueabi-ar...cqs QMAKE_OBJCOPY = arm-linux-gnueabi-objcopy QMAKE_NM = arm-linux-gnueabi-nm...-P QMAKE_STRIP = arm-linux-gnueabi-strip 修改后为: 有configure文件: .
linux-arm-gnueabi-g++ \ -optimized-qmake \ -pch \ -qt-sqlite \ -qt-libjpeg \ -qt-libpng...++/qmake.conf # # qmake configuration for building with arm-linux-gnueabi-g++ # MAKEFILE_GENERATOR.../common/g++-unix.conf) CROSS_COMPILE=arm-openwrt-linux # modifications to g++.conf QMAKE_CC...CROSS_COMPILE}-g++ QMAKE_LINK_SHLIB = $${CROSS_COMPILE}-g++ # modifications to linux.conf QMAKE_AR.../bin/qmake -project 执行: /root/tina-v853-docker/platform/thirdparty/gui/qt/qt-5.12.9/arm-qt/bin/qmake
++/qmake.conf qmake.conf 文件内容如下: # # qmake configuration for building with arm-linux-gnueabi-g++ #.../opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-gcc QMAKE_CXX = /work/arm-linux-gcc.../opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-g++ QMAKE_LINK = /work/arm-linux-gcc.../opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-g++ QMAKE_LINK_SHLIB = /work/arm-linux-gcc...QMAKE_NM = /work/arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/bin/arm-none-linux-gnueabi-nm
//每执行一次loop1,x2+3*执行次数,目的在于把x0(clidr_el1)右移3位, //取下一个cache的ctype type fields字段,clidr_el1的格式见《ARMv8 ARM
罗列了一些Qt君常用到的qmake隐藏变量,因为这些变量没有写入到Qt官方的qmake文档中,意味着后续版本中说不能用就不能用了,只是做参考用。...下列的这些qmake隐藏变量都能在Qt5.12.2版本中使用。...unix是斜杠/ QMAKE_QMAKE qmake执行文件的绝对路径 *.pro项目文件,在Qt 5.12.2看到已是公开变量 一些跨平台命令 变量 含义 命令对照(win平台) QMAKE_CHK_DIR_EXISTS...检查目录是否存在的命令 if not exist QMAKE_COPY 复制文件命令 copy /y QMAKE_COPY_FILE 复制文件命令 copy /y QMAKE_COPY_DIR 复制目录命令...xcopy /s /q /y /i QMAKE_DEL_DIR 删除目录命令 rmdir QMAKE_DEL_FILE 删除文件命令 del QMAKE_MKDIR 创建目录命令 mkdir QMAKE_MOVE
一些项目开发中用到的qmake实用变量。...计算机架构 QMAKE_HOST.os 计算机系统 QMAKE_HOST.cpu_count 计算机CPU核心数 QMAKE_HOST.name 计算机名 QMAKE_HOST.version 系统版本...(数字形式) QMAKE_HOST.version_string 系统版本(字符串形式) QMAKE_PRE_LINK 编译链接前自动执行命令(注意不是编译前) QMAKE_POST_LINK 编译链接后自动执行命令...($$QMAKE_HOST.name) # 计算机名 message($$QMAKE_HOST.version) # 系统版本(数字形式) message($$...QMAKE_HOST.version_string) # 系统版本(字符串形式) QMAKE_PRE_LINK += echo 'Start Build
前言 在linux环境下进行程序开发时,经常需要使用makefile管理编译代码,特别是一些大型工程,而makefile工具语法晦涩深入研究较为困难,好在有很多工具可以自动生成makefile,qmake...qmake基于一个项目文件这样的信息来生成makefile。项目文件可以由开发者生成。 不用修改项目文件,qmake也可以为Microsoft Visual Studio生成项目。...TARGET = Func CONFIG += console c++11 #C++11标准 CONFIG -= qt DEFINES += IOS_64 #64位 DEFINES += IOS_LINUX...#Linux系统 QMAKE_CXXFLAGS += -fPIC QMAKE_LFLAGS_DEBUG += -L$$PWD/../.....可以使用qmake -h查看具体的说明 qmake生成makefile 调试经验 在linux平台下可以用ldd命令查看so库所依赖的其他so库,readelf -d libxxx.so | grep
/usr/bin/arm-openstlinux_eglfs-linux-gnueabi/arm-openstlinux_eglfs-linux-gnueabi-gcc ?.../usr/bin/arm-openstlinux_eglfs-linux-gnueabi/arm-openstlinux_eglfs-linux-gnueabi-gcc #添加g++交叉编译器 名称:.../x86_64-openstlinux_eglfs_sdk-linux/usr/bin/arm-openstlinux_eglfs-linux-gnueabi/arm-openstlinux_eglfs-linux-gnueabi-gdb...添加嵌入式版本qmake #嵌入式Qt版本的qmake路径 路径:/opt/st/stm32mp1/2.6-snapshot/sysroots/x86_64-openstlinux_eglfs_sdk-linux.../usr/bin/qmake 添加qmake: ?
_64") DEFINES += LINUX_OS_X86_64 }else{ message("LINUX_OS_ARM64") DEFINES += LINUX_OS_ARM64...") set(LINUX_OS_ARM64 TRUE) add_definitions(-DLINUX_OS_ARM64) endif() #头文件包含 include_directories..._64") DEFINES += LINUX_OS_X86_64 }else{ message("LINUX_OS_ARM64") DEFINES += LINUX_OS_ARM64...平台判断 x86还是arm64 message(STATUS "LINUX_OS_X86_64") set(LINUX_OS_X86_64 TRUE) add_definitions...") set(LINUX_OS_ARM64 TRUE) add_definitions(-DLINUX_OS_ARM64) endif() exists (../.git) {
介绍些qmake使用频率较高的函数。
QMake的unix:!android语句一般指的是arm平台。...QMake的INSTALLS变量描述: https://doc.qt.io/qt-5/qmake-variable-reference.html#installs
0x00 判断某个类型是否存在: 原型: defined(name[, type]) type 含义 test 检查测试函数 replace 检查代替函数 va...
Qmake的TEMPLATE变量用来设置Qt项目的构建类型。
用 cmake 构建Qt工程(对比qmake进行学习) cmake vs qmake qmake 是为 Qt 量身打造的,使用起来非常方便 cmake 使用上不如qmake简单直接,但复杂换来的是强大的功能...(目前QtCreator为qmake也默认启用了该功能。...Using CMake to Build Qt Projects 一文中说: 对简单的Qt工程,采用 qmake 对复杂度超过 qmake 处理能力的,采用 cmake 尽管如此,如果简单Qt的工程都不知道怎么用...这也是为什么 很多人添加Q_OBJECT宏后不重新运行qmake会出错误的原因。...只是: MinGW 下仅仅这么做还不行,上面的 MinGW 块用来修复这个问题 Debug 与 Release qmake 使用 qmake 时,可以在 pro 文件内分别为两种模式设置不同的选项
qmake包工具在光盘的位置:3、Linux\2、工具软件\Linux 工具软件\qt4.7.3.tar.bz2 #进入到opt目录 cd /opt #解压qmake套件,Qt-4.7.3.tar.bz2...-v 如果本机有多个qmake,那么一定要把嵌入式qmake路径添加到环境变量最前面,否则不能识别 ?...-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gccc #交叉编译g++路径 /opt/gcc-4.4.4-glibc-2.11.1-multilib...-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-g++ #交叉编译gdb路径 /opt/gcc-4.4.4-glibc-2.11.1-multilib...-1.0/arm-fsl-linux-gnueabi/bin/arm-fsl-linux-gnueabi-gdb ?
领取专属 10元无门槛券
手把手带您无忧上云