2012-10-08 40 views
2

定義與逗號值我曾經有一個這樣定義:通過cmake的

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

現在我想通過cmake的做到這一點,但到目前爲止,我已經失敗了。任何人都知道如何做到這一點?

PS:這是我的嘗試:

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

回答

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(${CMAKE_BINARY_DIR}/common) 

參見我類似的回答以下幾個問題:

+0

嗯,我認爲它不會工作,它會比我想象的更好。 TNX –

1

爲我工作與報價:

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

沒有在這裏工作。我使用CMake和Visual Studio,而你呢? –