【问题标题】:How do you escape a semicolon in COMPILE_FLAGS property of cmake?如何在 cmake 的 COMPILE_FLAGS 属性中转义分号?
【发布时间】:2011-04-27 04:27:27
【问题描述】:

我需要在 msvc 生成器的预处理器定义中得到这个结果:

MYPATH=\"d:\\;.\\Lib\"

但是当我在 set_source_files_properties 中使用以下转义序列时:

set_source_files_properties(source.c PROPERTIES COMPILE_FLAGS "-DMYPATH=\\\"d:\\\;.\\\\Lib\\\"")

生成的结果是:MYPATH=\"d:\";".\Lib\"

注意双引号分号。是否有引用解决方法来允许不带引号的分号?

【问题讨论】:

    标签: visual-c++ preprocessor escaping cmake


    【解决方案1】:

    AFAIR,cmake 治疗;作为列表分隔符,因此它的行为方式符合文档中的属性。

    属性 [value1 [value2 ...]

    也许你最好尝试这样的事情 - 让它成为字符串变量,然后尝试替换它。

    set(MY_PATH "\"d:\\\;.\\\\Lib\\\"")
    set_source_files_properties(source.c PROPERTIES COMPILE_FLAGS ${MY_PATH})
    

    HTH, 谢尔盖

    【讨论】:

      猜你喜欢
      • 2018-06-18
      • 2012-05-28
      • 2011-01-25
      • 2011-12-06
      • 1970-01-01
      • 2011-04-14
      • 2011-04-30
      • 1970-01-01
      相关资源
      最近更新 更多