gpt4 book ai didi

variables - CMake 使用 "@"与 "${}"进行变量扩展

转载 作者:行者123 更新时间:2023-12-04 18:45:05 28 4
gpt4 key购买 nike

考虑以下:

SET(TEST_DIR, "test")
INSTALL(PROGRAMS scripts/foo.py DESTINATION ${TEST_DIR})
INSTALL(PROGRAMS scripts/foo.py DESTINATION @TEST_DIR@)

第一个 INSTALL命令不起作用。第二个。这是为什么?这两者有什么区别?我没有找到对 @@ 的任何引用扩展,但在创建配置文件的上下文中除外。其他一切只使用 ${}扩张。

更新:好的,上面有明显的错误。我的 SET()命令有一个多余的逗号。删除它,使其看起来像:
    SET(TEST_DIR "test")

结果是 @@${}扩展工作。还在疑惑(a) @@是什么意思而不是 ${} ,以及为什么只有前者与我不正确的 SET() 一起工作陈述。

最佳答案

根据 configure_file() 的文档配置文件时的命令 ${VAR}表格和 @VAR@表格将被替换为 VAR 的值。根据您上面的经验和一些测试,当 CMake 评估您的 CMakeLists.txt 时,我所做的两种表格都会被替换。 , 也。由于这没有记录在案,我建议不要使用 @VAR@来自您的 CMakeLists.txt
注意使用 configure_file() 时您可以将替换限制为仅 @VAR@使用 @ONLY 形成表格争论。

关于variables - CMake 使用 "@"与 "${}"进行变量扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16126225/

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