通过设置Qt项目文件来设置程序/库的生成路径与名字。...TARGET = Test 设置输出路径 输出为 .pro项目所在的Test目录下。 $$PWD意思为当前目录。
使用的主机可执行文件的数据位置 QT_HOST_PREFIX:所有主机路径的默认前缀 QT_INSTALL_ARCHDATA:依赖于一般架构的 Qt 数据的位置 QT_INSTALL_BINS:Qt...QT_INSTALL_LIBEXECS:运行时库所需的可执行文件的位置 QT_INSTALL_LIBS:库的位置 QT_INSTALL_PLUGINS:Qt 插件的位置 QT_INSTALL_PREFIX:所有路径的默认前缀...QMAKESPEC 环境变量可以包含以下内容: 包含 qmake.conf 文件的目录的完整路径。在这种情况下,qmake 将从该目录中打开 qmake.conf 文件。...如果文件不存在,qmake 将退出并报错。 平台编译器组合的名称。在这种情况下,qmake 将在 Qt 编译时指定的数据路径的 mkspecs 子目录指定的目录中搜索。...注意:QMAKESPEC 路径将自动添加到 INCLUDEPATH 系统变量内容之后生成的 Makefile 中。
英文文档连接: 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...,例如额外的库连接列表,或者使用额外的包含路径 项目文件可以包含许多不同的元素,包含注释、变量声明、内置函数和一些简单的控制结构。...你也可以用qmake生成项目文件。更全面的qmake命令行参数描述,请参阅 Running qmake。 qmake的基本配置功能可以处理大多数的跨平台项目。...在配置构建过程时qmake使用的相关环境变量的详细信息,请查看 Configuring qmake.
记录QMake宏定义的使用。...+= DEBUG 使用: #ifdef DEBUG qDebug() Debug<"; #endif // output: >Debug< 定义宏值(带双引号字符): # QMAKE_COPY...=> cp DEFINES += "COPY_CMD_LINE=\"\\\"$$QMAKE_COPY\\\"\"" 使用: qDebug() << COPY_CMD_LINE; // output
,项目文件主要包含源文件和头文件的引用,生成配置信息,还有其他任何的应用程序指定的细节,比如引用额外的库来链接,或者其他的include路径 pro文件包含很多不同的信息,包括注释,变量声明,内置函数...有关于配置的选项,或者一些在构建过程中的路径 qmake在每一个pro文件中寻找包含的变量,这些内容将决定应该向makefile中写入什么,举个例子,在HEADERS和SOURCES中的变量来告诉qmake...生成一个MakeFile的时候要搜索所有的子文件夹,并执行路径下的每一个pro文件,并且运行平台的 make工具在新创建的Makefile上,SUBDIRS变量用来包含一系列的子目录 常规配置属性 变量...要生成的应用程序的名字,默认的名字是项目的文件名 DESTDIR – 目标可执行文件所处的目录 DEFINES – 在应用程序中所定义的任何附加的预处理器 INCLUDEPAth – 应用程序中定义的任何附加的包含路径...VPATH – 关于需要搜索的文件的路径 DEF_FILE – 只有在windows平台中才可以使用,可以来反对应用程序的.def文件 如果你不需要加额外的配置,你可以不加,Qt会自己加上一些必要的选项
罗列了一些Qt君常用到的qmake隐藏变量,因为这些变量没有写入到Qt官方的qmake文档中,意味着后续版本中说不能用就不能用了,只是做参考用。...unix是斜杠/ QMAKE_QMAKE qmake执行文件的绝对路径 *.pro项目文件,在Qt 5.12.2看到已是公开变量 一些跨平台命令 变量 含义 命令对照(win平台) QMAKE_CHK_DIR_EXISTS...xcopy /s /q /y /i QMAKE_DEL_DIR 删除目录命令 rmdir QMAKE_DEL_FILE 删除文件命令 del QMAKE_MKDIR 创建目录命令 mkdir QMAKE_MOVE...移动或重命名文件或目录命令 move 获取Qt有关信息的变量 获取到当前使用到的Qt或QMAKE的一些信息(版本,执行文件路径,编译器路径等)。...QT_INSTALL_PREFIX]) message($$[QT_INSTALL_QML]) message($$[QT_INSTALL_TRANSLATIONS]) 输出:(Qt君安装的Qt5.12.2版本路径在
变量 含义 TARGET 生成目标的名字 DESTDIR 目标输出文件路径 PWD 当前文件(.pro或.pri)所在的路径 OUT_PWD Makefile生成的路径 _PRO_FILE_ pro项目文件...(带路径) _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_PRE_LINK...)所在的路径 message($$OUT_PWD) # Makefile生成的路径 message($$_PRO_FILE_) # pro项目文件(带路径) message(...$$_PRO_FILE_PWD_) # pro项目文件所在的路径 message($$QMAKE_HOST.arch) # 计算机架构 message($$QMAKE_HOST.os) # 计算机系统
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的unix:!android语句一般指的是arm平台。...QMake的INSTALLS变量描述: https://doc.qt.io/qt-5/qmake-variable-reference.html#installs
介绍些qmake使用频率较高的函数。
变量 含义 TARGET 生成目标的名字 DESTDIR 目标输出文件路径 PWD 当前文件(.pro或.pri)所在的路径 OUT_PWD Makefile生成的路径 _PRO_FILE_ pro项目文件...(带路径) _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_PRE_LINK...)所在的路径 message($$OUT_PWD) # Makefile生成的路径 message($$_PRO_FILE_) # pro项目文件(带路径) message($...$_PRO_FILE_PWD_) # pro项目文件所在的路径 message($$QMAKE_HOST.arch) # 计算机架构 message($$QMAKE_HOST.os) # 计算机系统
qmake 有一个安装集的概念。...要生成的名为 mytarget 的目标 2、mytarget 是名为 .buildfile 的 Makefile 文件,该目标由 touch 命令生成(Linux touch命令),即运行 mytarget.commands...变量来指示 qmake 这个对象是要构建的目标: QMAKE_EXTRA_TARGETS += mytarget mytarget2 这就是实际构建自定义目标所需要做的全部工作。...安装库时,通过在 INSTALLS 声明中将其指定为目标,qmake 会自动将 .prl 文件复制到安装路径。....prl 文件应仅由 qmake 创建,不应在操作系统之间传输,因为它们可能包含平台相关信息。
以下选项仅在 Linux/Unix 平台上生效: largefile:包括对大文件的支持。 separate_debug_info:将库的调试信息放在单独的文件中。...如果使用 Unix -l(库)和 -L(库路径)标志,qmake 会在 Windows 上正确处理库(即,将库的完整路径传递给链接器)。...115、QMAKE_LIBDIR 指定所有项目的库搜索路径列表。要在项目文件中指定其他搜索路径,请使用 LIBS。...指定在链接时添加到可执行文件的库路径列表,以便在运行时优先搜索路径。 当指定了相对路径时,qmake 会将它们转换成动态链接器理解的与引用可执行文件或库的位置相关的形式。...这仅受某些平台(当前基于 Linux 和 Darwin 的平台)支持,并且可以通过检查是否设置了 QMAKE_REL_RPATH_BASE 来检测。
1>Reading Qt configuration (D:/SoftWare/QT5.9.3/5.9.3/msvc2017_64/bin/qmake) 1>GHViewerDetect.vcxproj...: error : ERROR running qmake 1>GHViewerDetect.vcxproj : error : qmake: (D:/SoftWare/QT5.9.3/5.9.3/...msvc2017_64/bin/qmake) 1>GHViewerDetect.vcxproj : error : qmake: $PWD=D:\project\GHView\GHView\GHViewerDetect...\x64\Debug\qmake\temp 1>GHViewerDetect.vcxproj : error : qmake: Project ERROR: Unknown module(s) in...QT: networkauth 1>GHViewerDetect.vcxproj : error : qmake: Error creating Makefile 1>GHViewerDetect.vcxproj
前言 在linux环境下进行程序开发时,经常需要使用makefile管理编译代码,特别是一些大型工程,而makefile工具语法晦涩深入研究较为困难,好在有很多工具可以自动生成makefile,qmake...#Linux系统 QMAKE_CXXFLAGS += -fPIC QMAKE_LFLAGS_DEBUG += -L$$PWD/../...../ #相对路径是相对工程文件pro的路径 # QMAKE_LFLAGS += -L$$PWD/../../../...../ThirdPartyLib/openrave-0.9/lib #相对路径是相对工程文件pro的路径 编译时静态链接 # QMAKE_LFLAGS += -Wl,-rpath=../../../.....可以使用qmake -h查看具体的说明 qmake生成makefile 调试经验 在linux平台下可以用ldd命令查看so库所依赖的其他so库,readelf -d libxxx.so | grep
在我们编译别人发送的项目时,有时候会出现qmake编译失败的情况,那怎么办?
由于Qt的跨平台,其对应的编译配置工具QMake也是跨平台,这意味着QMake语法关键词大部分使用到的东西都是跨平台的。 利用QMake跨平台特性整理出一些跨平台系统命令。...如下表(windows平台): 关键词 命令 含义 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 move 移动/重命名
在qt/mkspecs中的每一个目录里面,都有一个包含了平台和编译器特定信息的qmake.conf文件。这些设置适用于你要使用qmake的任何项目,请不要修改它,除非你是一个专家。...项目(.pro)文件 一个项目文件是用来告诉qmake关于为这个应用程序创建makefile所需要的细节。...例如,一个源文件和头文件的列表、任何应用程序特定配置、例如一个必需要连接的额外库、或者一个额外的包含路径,都应该放到项目文件中。 “#”注释 你可以为项目文件添加注释。...“app”模板 “app”模板告诉qmake为建立一个应用程序生成一个makefile。当使用这个模板时,下面这些qmake系统变量是被承认的。...INCLUDEPATH - 应用程序所需的额外的包含路径的列表。 DEPENDPATH - 应用程序所依赖的搜索路径。 VPATH - 寻找补充文件的搜索路径。
领取专属 10元无门槛券
手把手带您无忧上云