Cmake将参数解析为代码
Posted
技术标签:
【中文标题】Cmake将参数解析为代码【英文标题】:Cmake parse parameters into code 【发布时间】:2018-01-31 21:51:50 【问题描述】:我可以从cmake
的配置文件中解析出一个参数并将其作为参数粘贴到C++
代码中吗?
我需要根据某些系统属性为std::array<T,N>
动态设置模板值N
?
N = (a - b) / c
所有应该是系统参数。
【问题讨论】:
/OT @El Dude 嘿!! 这些系统属性在 CMake 中可用吗? 将预处理器宏定义传递给编译器? 【参考方案1】:您可以使用 -D
编译器标志将预处理器宏定义传递给 c++ 编译器:
MY_CALCULATED_ARRAY_SIZE = "(a - b) / c"
CXX_FLAGS = $(CXX_FLAGS) -DN=$(MY_CALCULATED_ARRAY_SIZE)
【讨论】:
我可以使用 cmake 从指定文件中自动读取a,b,c
吗?
@ElDude 包括其他一些包含定义的CMakeLists.txt
格式文件。
@ElDude 让我们一起来个“白俄罗斯人” ;-)。您可以通过多种方式使用 CMake 来实现您想要实现的目标。实际上,您的问题对此提出了过于宽泛。最后归结为,您如何将N
向下传递给您的c++ 代码,而CXX_FLAGS
中的-D
是要走的路。其余部分在 CMake 文档中介绍。以上是关于Cmake将参数解析为代码的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript将函数参数解析为getElementsByClassName