首页 > 解决方案 > 如何从我的程序中访问 CmakeCache.txt 中的变量?

问题描述

我正在尝试使用 cmake 编译程序,并将 -DCOMMIT_NUM:STRING="some_number" 作为命令行参数与 cmake 一起传递。我在 CMakeCache.txt 文件中看到了这个变量,但我不确定如何在我的程序中访问它。我需要打印 COMMIT_NUM。我尝试打印这个变量。我得到的错误是 COMMIT_NUM 没有在范围内声明。

到处找,请问可以帮忙吗?谢谢

标签: cachingcmake

解决方案


COMMIT_NUM是一个 CMake 变量。因此,它仅在 CMake 中可用。

如果您希望您的程序能够访问此信息,则必须让 CMake 将其转发给您的程序。

我假设您所说的“程序”是在 CMake 中定义的 C/C++ 程序,类似于add_executable(targetName). 然后转发变量,您可以使用:

target_compile_definitions(targetName PUBLIC COMMIT_NUM=${COMMIT_NUM})

然后,在程序的任何编译单元中,您应该可以访问一个宏COMMIT_NUM,其值与您为 CMake 提供的值相同。


推荐阅读