使用逗号通过cmake定义值

时间:2012-10-08 12:30:29

标签: csv cmake c-preprocessor conditional-compilation

我以前有这样的定义:

#define MY_CLSID {0xc9955517, 0x6ca4, 0x439f, {0x86, 0xb7, 0xdd, 0xc5, 0xb6, 0x45, 0xe7, 0x6c}}

现在我想通过cmake这样做,但到目前为止我都失败了。谁知道怎么做?

P.S。:那是我的尝试:

add_definitions(/D MY_CLSID={0x87f8774f,0xb485,0x47e2,{0xa7,0x55,0xa4,0xa,0x8a,0x5e,0x88,0x6c}})

2 个答案:

答案 0 :(得分:1)

用引号为我工作:

add_definitions(
  /D MY_CLSID="{0x87f8774f,0xb485,0x47e2,{0xa7,0x55,0xa4,0xa,0x8a,0x5e,0x88,0x6c}}"
)

答案 1 :(得分:1)

当然,arrowdodger的回答是正确的,如果你只有其中一些定义,我也会推荐它。如果有很多(更复杂的)定义,configure_file的使用可能是一个很好的选择:

// In Your_CLSID.h.in
#cmakedefine {0xc9955517, 0x6ca4, 0x439f, {0x86, 0xb7, 0xdd, 0xc5, 0xb6, 0x45, 0xe7, 0x6c}}
// end of Your_CLSID.h.in

并使用

生成“Your_CLSID.h”
configure_file( ${CMAKE_SOURCE_DIR}/Your_CLSID_Config.h.in ${CMAKE_BINARY_DIR}/common/Your_CLSID.h )

当然,您必须将二进制目录添加到include-directories:

include_directories( ${CMAKE_BINARY_DIR}/common )

另见我对以下问题的类似答案: