2

私は以前、次のような定義を持っていました。

#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}})
4

2 に答える 2

1

引用符で私のために働いた:

add_definitions(
  /D MY_CLSID="{0x87f8774f,0xb485,0x47e2,{0xa7,0x55,0xa4,0xa,0x8a,0x5e,0x88,0x6c}}"
)
于 2012-10-08T16:08:24.753 に答える
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 )

次の質問に対する私の同様の回答も参照してください。

于 2012-10-08T18:48:02.743 に答える