4

プロジェクトの CMakeLists.txt を作成していますが、set_source_files_properties で問題が発生しました。

元の作業式は次のとおりです。

set_source_files_properties (a.cpp PROPERTIES COMPILE_DEFINITIONS
    DIR1="/home/xxx/b.i")

次に、COMPILE_DEFINITIONS をさらに追加しようとしましたが、失敗しました。

1を試してください:

set_source_files_properties (a.cpp PROPERTIES COMPILE_DEFINITIONS
    DIR1="/home/xxx/b.i" DIR2="/home/xxx/c.i" DIR3="/home/xxx/d.i")

2を試してください:

set_source_files_properties (a.cpp PROPERTIES COMPILE_DEFINITIONS
    DIR1="/home/xxx/b.i")
set_source_files_properties (a.cpp PROPERTIES COMPILE_DEFINITIONS
    DIR2="/home/xxx/c.i")
set_source_files_properties (a.cpp PROPERTIES COMPILE_DEFINITIONS
    DIR3="/home/xxx/d.i")

結果: make でコンパイルする場合、最後の定義 DIR3 のみが a.cpp で認識され、最初の 2 つは make フェーズで未定義と報告されます。

助言がありますか?

ありがとうございました!

4

3 に答える 3

14

関数は、基本的な使用法のset_*_properties()省略形です。「高度な」ケースでは、次の機能を最大限に活用することをお勧めしますset_property()

set_property(
  SOURCE a.cpp
  APPEND
  PROPERTY COMPILE_DEFINITIONS
  DIR1="/home/xxx/b.i" DIR2="/home/xxx/c.i" DIR3="/home/xxx/d.i"
)
于 2013-01-07T09:07:40.737 に答える
3

次のコマンドCOMPILE_DEFINITIONSを使用して、いくつかを提供することができました。set_source_files_properties

set_source_files_properties (a.cpp PROPERTIES COMPILE_DEFINITIONS
    "DIR1=\"/home/xxx/b.i\";DIR2=\"/home/xxx/c.i\";DIR3=\"/home/xxx/d.i\")"

ソース: https://cmake.org/cmake/help/v3.5/prop_sf/COMPILE_DEFINITIONS.html

于 2016-12-05T16:17:58.437 に答える
-4

問題は次の方法で解決されました。

add_definitions (-DDIR1="/home/xxx/b.i") 
add_definitions (-DDIR2="/home/xxx/C.i") 
add_definitions (-DDIR3="/home/xxx/D.i")
于 2013-01-08T02:44:54.830 に答える