gpt4 book ai didi

CMake 目标设置问题

转载 作者:行者123 更新时间:2023-12-01 13:12:36 25 4
gpt4 key购买 nike

想象一下下面的情况:

我有“project”文件夹,在这个文件夹中我有“src”文件夹和2个文件“1.cpp”和“2.cpp”。每个 .cpp 都生成一个可执行文件。在 cmake 生成 makefile 之后,我希望能够执行以下操作:

  • 指定我要构建可执行文件“1”或“2”或两者
  • 指定我想在 Debug模式下构建所有可执行文件
  • 指定我想在 Release模式下构建所有可执行文件
  • 指定我想在发布和 Debug模式下构建所有可执行文件

所以我希望能够编写以下内容:

  • (c)制作/任何东西 1
  • (c)制作/任何东西 2
  • (c)make/anything all-release
  • (c)make/anything all-debug
  • (c)make/anything all-debug-and-release

实现此目标的最佳方法是什么?非常感谢!

最佳答案

您需要在根目录中有一个顶级 CMakeLists.txt,它知道您的“src”目录(使用 add_subdirectory)。然后在“src”中,您将需要另一个 CMakeLists.txt,它指定如何编译您的可执行文件。这本身就可以说,例如:

make 1 2

至于调试/ Release模式,可以通过变量 CMAKE_BUILD_TYPE 在 cmake 中指定。但是,如果未指定变量,我通常会在顶层指示它进入调试或 Release模式:

IF( NOT CMAKE_BUILD_TYPE )
SET( CMAKE_BUILD_TYPE Debug )
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEBUG" )
ENDIF( NOT CMAKE_BUILD_TYPE )

另一种在不修改 CMakeLists.txt 的情况下编辑构建类型的方法是做

make edit_cache

这将打开一个带有变量的 ncurses 对话框,CMAKE_BUILD_TYPE 其中。

关于CMake 目标设置问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5203054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com