gpt4 book ai didi

cmake:为参数设置默认值

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

我的 UNIX Makefile 如下:

   param=0

run:
./foo -r "fun($(param))"

所以如果我执行 make run,我会得到 ./foo - r "fun(0)" 并且对于 make run param=10,我得到 ./foo -r "fun(10)"

现在我想用cmake生成类似的Makefile。

   add_custom_target(
run
./foo -r "\"fun($(param))\""
)

如何在 cmake 配置文件中设置 param 的默认值?

最佳答案

CMake 中的概念有点不同。您可以定义带有默认值和文档字符串等的“缓存变量”(基本上是在同一构建目录中为后续构建记住的变量,并且可以由用户自定义)。然后可以通过将 -D name:type=value 选项传递给 cmake 或使用更友好的前端之一(例如 ccmake,CMake 的 curses UI)来更改它们.

基于您的问题的示例:

SET(param 0 CACHE STRING "Test variable defaulting to '0'")# ...add_custom_target(run ./foo -r "\"fun(${param})\"")

您将在详尽的 CMake 文档中找到更多详细信息。

附言。这是针对 CMake 内部的变量,特别是 CMakeLists.txt 本身;据我所知,更改值的可能性不会转移到生成的 Makefile 中。我不确定这是否可能首先因为它可能不兼容 CMake 支持的所有目标(例如 Visual Studio 项目等等)。无论如何,CMake 似乎并不是为生成独立于 CMake 使用的构建文件而设计的。

关于cmake:为参数设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19911253/

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