【问题标题】:qmake: how to remove the dependency of absolute paths?qmake:如何去除绝对路径的依赖?
【发布时间】:2015-12-14 16:57:07
【问题描述】:

Qt Creator + VC19 (MSVC2015) + WinSDK8.1 没有使用 Qt 本身。只需控制台应用程序 std+boost+catch+easyloggingpp

VC\bin 和 WinSDK\bin 都在系统路径变量中。 在 pro 文件中配置的所有包含和 lib 路径。

我需要将它们从项目文件中移出以在各种机器上构建这个项目(所有窗口,但使用的库的不同位置)。

我认为 cl.exe 可以从 LIB 和 INCLUDE 环境变量中读取它,但如果我这样做(从 bat 文件或 QT Creator 中的项目设置中设置头文件和库路径)它不起作用,QtC 报告我找不到一些标题。 你能帮我澄清一下吗:

  1. Qt Creator 是否应该读取 LIB 和 INCLUDE 变量以进行构建和解析?什么是让它发挥作用的正确步骤?
  2. 如果 Qt Creator 无法读取环境变量,那么使用 qmake 删除项目构建中绝对路径的依赖关系的正确方法是什么?

【问题讨论】:

  • 当心以下 qmake 行为(在 Linux 上出现,不确定是否在 Windows 中发生):qmake 解析环境变量,然后将值写入它生成的 makefile 中。所以,一旦你创建了makefile,如果你改变了一个环境变量,你必须让qmake重新生成makefile来更新它们。

标签: c++ qt visual-c++ qmake


【解决方案1】:

您的项目文件中显然已将 Visual Studio 编译器和其他标准库路径硬编码为绝对路径?

所有 Visual Studio 或其他编译器设置,例如工具链位置通常由 Qt Creator 从编译器套件中读取。 Adding Compilers 文章对此进行了澄清。只要您的系统安装了 Visual Studio,这是首先要配置的。配置好编译器工具包后,您将能够在当前项目构建中添加一个:Configuring Projects 文章。

如果您使用 qmake 和 jom 从命令行构建:您的构建脚本可能会执行 Visual Studio 标准环境批处理脚本文件,例如:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\VcVarsAll.bat" amd64

注意目标位数 (32/64) 和 Visual Studio 的实际位置。对此有 MSDN 文章:Setting the Path and Environment Variables for Command-Line Builds

【讨论】:

  • 你是对的,.pro 文件中的硬编码绝对路径。是的,我尝试使用 .bar 配置,不是原始配置,而是基于 VC 套件中原始配置的修改版本。而这个(或来自 VC 工具包的原始文件对我不起作用 - Qt Creator 向我显示了一个关于丢失文件的错误(来自这些路径)
  • 那么,您按照建议进行了更改,但仍然出现错误?究竟是什么错误?
  • 抱歉,这是我的疏忽,LIB 和 INCLUDE 包含“...程序文件...”类路径的“”(引号)。没有引号它工作正常。谢谢!
猜你喜欢
  • 2020-06-27
  • 1970-01-01
  • 2013-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-10
  • 1970-01-01
  • 2016-04-22
相关资源
最近更新 更多