如何使用Qt Creator接口和设置传递cmake参数

时间:2017-08-30 14:59:44

标签: qt cmake qt-creator

我正在试图弄清楚如何使用Qt Creator的设置并传递一些CMake参数。假设我有一个可以使用终端构建的应用程序,如下所示:

cmake .. -DQTDIR=/home/myCustomBuildStuff 
    -DLD_LIBRARY_PATH=/home/myCustomBuildStuff 
    -DCMAKE_INCLUDE_PATH=/home/myCustomBuildStuff/include
    # etc.

正如您所看到的,我正在使用我的自定义Qt(以及其他一些库)。当我使用终端构建时,一切正常。

但是现在我想尝试使用Qt Creator并使用Qt Creator设置传递所有CMake参数。

我尝试使用套件中的 CMake配置设置。我尝试修改构建设置,并将我的参数直接添加到上面的构建步骤和/或 CMake 表中。这些都没有帮助,我的应用无法包含QtWidgets的自定义内置main.cpp

/usr/lib/x86_64-linux-gnu/libQt5Core.so.5:-1: error: 
    version 'Qt_5.9' not found (required by home/myCustomBuiltStaff/bin/uic)

在上面的错误中,路径显然是错误的(它需要在/home/myCustomBuiltStuff/文件夹中搜索)。但是如何使用Qt Creator设置传递该路径?

注意,当我将所有路径作为参数传递给CMake时,我无法触及CMake文件的内容,只想让它在我的终端中构建。

2 个答案:

答案 0 :(得分:3)

所以我遵循了评论中给出的建议,并且必须添加我自己的自定义构建步骤,以确保我正确传递了所需的CMake参数。我无法通过使用Qt Creator的设置和菜单找到任何其他方式来传递它们。

这是我所做的步骤列表:

  1. 转到Projects并选择Build进行修改。如果您有多个配置,则必须为每个配置重复以下步骤。
  2. 禁用或删除默认的CMake步骤,通常类似于cmake --build . --target all
  3. 选择Build directory
  4. 使用 Command 添加新的自定义流程步骤cmake参数作为您的CMake参数;通常你会将工作目录保留为默认值。
  5. 使用 Command 添加新的自定义流程步骤make并添加任何必要的参数(例如LD_LIBRARY_PATH)。
  6. 转到并修改Run设置:确保可执行文件指向刚刚创建的cmakemake。在那里,您还可以添加任何必要的命令行参数。

答案 1 :(得分:0)

这是我正在使用的4.3.1版本。如果还没有完成,你应该有最新版本的qtcreator。

文件>打开:

选择项目的CMakeLists.txt文件。选择你的目标,你应该能够至少打开项目。

现在点击" Projects"。确保您选择了Build&运行 - >在Cmake下构建并点击"添加" - > "字符串"或"目录"。在您的情况下,目录更有意义。在左边你输入了定义,没有" -D"当然和正确的价值。

对要定义的每个变量重复此步骤,然后单击"应用"

如果这不起作用,我会尝试将CMAKE_EXE_LINKER_FLAGS设置为-L/home/myCustomBuildStuff

提示:要查看它是否有效,如果您在构建步骤部分下使用makefile,则可以将VERBOSE = 1参数传递给工具参数。这样你的输出就会显示变量是否真的通过了。

提示:记住激活"高级"选择,这样你就可以看到更多,如果不是所有变量都定义为Cmake。