我以前有这样的定义:
#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}})
答案 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 )
另见我对以下问题的类似答案: