caching - 如何从我的程序中访问 CmakeCache.txt 中的变量?
问题描述
我正在尝试使用 cmake 编译程序,并将 -DCOMMIT_NUM:STRING="some_number" 作为命令行参数与 cmake 一起传递。我在 CMakeCache.txt 文件中看到了这个变量,但我不确定如何在我的程序中访问它。我需要打印 COMMIT_NUM。我尝试打印这个变量。我得到的错误是 COMMIT_NUM 没有在范围内声明。
到处找,请问可以帮忙吗?谢谢
解决方案
你COMMIT_NUM
是一个 CMake 变量。因此,它仅在 CMake 中可用。
如果您希望您的程序能够访问此信息,则必须让 CMake 将其转发给您的程序。
我假设您所说的“程序”是在 CMake 中定义的 C/C++ 程序,类似于add_executable(targetName)
. 然后转发变量,您可以使用:
target_compile_definitions(targetName PUBLIC COMMIT_NUM=${COMMIT_NUM})
然后,在程序的任何编译单元中,您应该可以访问一个宏COMMIT_NUM
,其值与您为 CMake 提供的值相同。
推荐阅读
- python - 通过元组列表过滤 DataFrame 的行
- javascript - 如何发现不再调用 MediaRecorder.ondataavailble 的问题?
- ruby-on-rails - fixture_file_upload & Rack::Test::UploadedFile - ActiveStorage::IntegrityError
- android - EditText 重力影响提示文本但不影响输入文本
- mysql - laravel-translatable:将现有文本列转换为可翻译
- python - 使用 Matplotlib 在两个子图中传播数据
- c++ - 我是 C++ 的初学者,我想知道我的代码中的错误
- c# - ASP.NET Core:AllowSynchronousIO = true per endpoint vs per server
- amazon-web-services - 无法使用 Terraform 在自定义 VPC 中创建 Elastic Beanstalk 应用程序
- c# - 按动态参数排序