如何使用 Qt Creator 界面和设置传递 cmake 参数
How to pass cmake arguments using Qt Creator interface and settings
我正在尝试了解如何使用 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 配置 设置。我尝试修改 Build Settings,并将我的参数直接添加到 Build Steps and/or CMake table 以上。 None 有帮助,我的应用程序无法包含来自 main.cpp
的自定义 QtWidgets
:
/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 文件的内容,只想让它在我的终端中构建。
我使用的是4.3.1版本。如果尚未完成,您应该拥有最新版本的 qtcreator。
文件->打开:
选择项目的 CMakeLists.txt 文件。 Select你的目标,你至少应该能够打开项目。
现在点击 "Projects"。确保您选择了 Build & 运行 -> Build 并在 Cmake 下单击 "Add" -> "String" 或 "Directory"。在您的情况下,目录更有意义。在左边你放了定义,当然没有“-D”,右边是值。
为每个要定义的变量重复该步骤,然后单击 "Apply"
如果这不起作用,我会尝试将 CMAKE_EXE_LINKER_FLAGS 设置为 -L/home/myCustomBuildStuff
提示:如果您在构建步骤部分下使用 makefile,则可以将 VERBOSE=1 参数传递给 toolparameters,以查看它是否有效。这样你的输出就会显示变量是否真的被传递了。
提示: 记得激活 "Advanced" 选择,这样即使不是所有为 Cmake 定义的变量,您也能看到更多。
所以我遵循了评论中给出的建议,并且不得不添加我自己的自定义构建步骤以确保我正确传递了所需的 CMake 参数。我找不到任何其他方式通过使用 Qt Creator 的设置和菜单来传递它们。
这是我执行的步骤列表:
- 转到
Projects
并选择 Build
进行编辑。如果您有多个配置,则必须对每个配置重复以下步骤。
- 禁用或删除默认的 CMake 步骤,通常类似于
cmake --build . --target all
- 选择你的
Build directory
。
- 添加新的自定义流程步骤,命令为
cmake
,参数 成为您的 CMake 参数;通常你会将工作目录保留为默认值。
- 添加新的自定义流程步骤,命令为
make
并添加任何必要的参数(例如LD_LIBRARY_PATH
).
- 去编辑
Run
设置:确保可执行文件指向您刚刚创建的cmake
和make
。您还可以在那里添加任何必要的命令行参数。
我正在尝试了解如何使用 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 配置 设置。我尝试修改 Build Settings,并将我的参数直接添加到 Build Steps and/or CMake table 以上。 None 有帮助,我的应用程序无法包含来自 main.cpp
的自定义 QtWidgets
:
/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 文件的内容,只想让它在我的终端中构建。
我使用的是4.3.1版本。如果尚未完成,您应该拥有最新版本的 qtcreator。
文件->打开:
选择项目的 CMakeLists.txt 文件。 Select你的目标,你至少应该能够打开项目。
现在点击 "Projects"。确保您选择了 Build & 运行 -> Build 并在 Cmake 下单击 "Add" -> "String" 或 "Directory"。在您的情况下,目录更有意义。在左边你放了定义,当然没有“-D”,右边是值。
为每个要定义的变量重复该步骤,然后单击 "Apply"
如果这不起作用,我会尝试将 CMAKE_EXE_LINKER_FLAGS 设置为 -L/home/myCustomBuildStuff
提示:如果您在构建步骤部分下使用 makefile,则可以将 VERBOSE=1 参数传递给 toolparameters,以查看它是否有效。这样你的输出就会显示变量是否真的被传递了。
提示: 记得激活 "Advanced" 选择,这样即使不是所有为 Cmake 定义的变量,您也能看到更多。
所以我遵循了评论中给出的建议,并且不得不添加我自己的自定义构建步骤以确保我正确传递了所需的 CMake 参数。我找不到任何其他方式通过使用 Qt Creator 的设置和菜单来传递它们。
这是我执行的步骤列表:
- 转到
Projects
并选择Build
进行编辑。如果您有多个配置,则必须对每个配置重复以下步骤。 - 禁用或删除默认的 CMake 步骤,通常类似于
cmake --build . --target all
- 选择你的
Build directory
。 - 添加新的自定义流程步骤,命令为
cmake
,参数 成为您的 CMake 参数;通常你会将工作目录保留为默认值。 - 添加新的自定义流程步骤,命令为
make
并添加任何必要的参数(例如LD_LIBRARY_PATH
). - 去编辑
Run
设置:确保可执行文件指向您刚刚创建的cmake
和make
。您还可以在那里添加任何必要的命令行参数。