cmake 3.5
。
私はCMakeプロジェクトで次のコードを試しました。 のはSUBDIRS
は、ディレクトリのリストが含まれているとしましょう:foreach()ループでCmake、include_directoryが機能しない
1.
foreach(subdir ${SUBDIRS})
if(IS_DIRECTORY ${subdir})
MESSAGE(STATUS "Including dir " ${subdir})
include_directories(${subdir})
endif()
endforeach()
2.
set(include_dirs "")
foreach(subdir ${SUBDIRS})
if(IS_DIRECTORY ${subdir})
list(APPEND include_dirs ${subdir})
endif()
endforeach()
include_directories(${include_dirs})
が
3作品以上のソースコードの
set(include_dirs "")
foreach(subdir ${SUBDIRS})
if(IS_DIRECTORY ${subdir})
set(include_dirs "${include_dirs} ${subdir}")
endif()
endforeach()
include_directories(${include_dirs})
なし。私は
include_directories("path/to/dir1" "path/to/dir2")
は動作しません
include_directories("path/to/dir1 path/to/dir2")
とは対照的に、同様に動作することを気づいた
include_directories(path/to/dir1
path/to/dir2
...)
:私は特に各パスを宣言する必要がありますように
が見えます。私はそれがforeach()
の問題を反映していると思います。
提案がありますか?おかげさまで
----------- -----------編集
1.
からのメッセージ:MESSAGE(STATUS "Including dir " ${subdir})
は出力を提供します。
including dir path/to/dir1
including dir path/to/dir2
「動作しない」とはどういう意味ですか?あなたは何を期待しますか?何が起こりますか? 1つの引数だけを渡し、有効なパスではないので、 'include_directories(" path/to/dir1 path/to/dir2 ")は間違っています。 – usr1234567
'include_directories()'ディレクティブの後に含まれるすべてのディレクトリを除きます。 – hudac
追加する実際のパスを指定します。彼らはスペースを含んでいますか?あなたが得られるアウトプットは何ですか? – usr1234567