2017-08-30 67 views
1

我想弄清楚如何使用Qt Creator的设置并传递一些CMake参数。比方说,我有我可以建立一个使用终端,像这样的应用程序:如何使用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 Configuration设置。我试图修改构建设置,并将我的论据直接添加到上面的构建步骤和/或CMake表中。这些都不利于和我的应用程序失败,包括我的定制QtWidgetsmain.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文件时将其构建,因为当我将所有路径作为参数传递给CMake时。

+0

您可以尝试禁用/删除默认构建步骤,并将您的构建命令添加为“自定义流程步骤”。这应该给你与在终端中运行完全相同的结果。 – m7913d

+0

谢谢,我能够通过使用自定义步骤来重现构建。 – vicrucann

+0

我如此糟糕地错过了CMake向导,它可用于Qt Creator(v3.5)的旧版本,如[本文]中所示(http://preshing.com/20170511/how-to-build-a-cmake-基于项目/#楼与 - QT-创造者)! – normanius

回答

0

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

这是步骤列表我所做的:

  1. 转到Projects,并选择了Build编辑。如果你有多种配置,你将不得不重复下面的步骤。
  2. 禁用或删除默认的CMake步骤,通常它会类似cmake --build . --target all
  3. 选择您的Build directory
  4. 添加新的自定义工艺步骤命令cmake参数是你的CMake的参数;通常您会将工作目录保留为默认值。
  5. 添加新的自定义工艺步骤命令make并添加任何必要的参数(例如LD_LIBRARY_PATH)。
  6. 开始并编辑Run设置:确保可执行文件指向刚创建的cmakemake。在那里你还可以添加任何必要的命令行参数。
0

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

文件 - >打开:

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

现在点击“项目”。确保你选择了Build &运行 - >生成并在Cmake下点击“添加” - >“字符串”或“目录”。在你的情况目录更有意义。在左边放置定义,当然没有“-D”,右边是值。

重复你要定义并单击每个变量的一步“应用”

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

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

提示:记住激活“高级”选项,以便查看更多(如果不是所有)定义为Cmake的变量。

+0

我已经尝试将我的参数添加到您描述的CMake表中,但那并不像我原来的问题所述的那样工作(对不起,如果不清楚)。不幸的是,链接标志也没有帮助。我尝试了评论中提到的方法,它似乎工作。不知道我是否可以通过编辑设置来完成,但我会坚持现在的工作。 – vicrucann