CMake を使用してプロジェクトを完全に実行するように割り当てられました。
基本的に、プロジェクトには 20 以上のモジュールがあり、モジュールごとに次のような CMake ファイルを作成しました。
# Module: CFS
file(
GLOB_RECURSE
files
*.c
*.cpp
)
include_directories("${PROJECT_SOURCE_DIR}/include/PEM/cfs")
include_directories("${PROJECT_SOURCE_DIR}/include/PEM/kernel2")
SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
add_library(cfs ${files})
kernel2 は別のモジュールで、独自の CMakeFile があります。
ここでの問題は、3 番目のモジュールである m3 が cfs からのヘッダーを必要とすることです (これには、kernel2 からのヘッダーも必要です)。
だから私は基本的に行きます:
# Module: m3
file( ... )
include_directories("${PROJECT_SOURCE_DIR}/include/PEM/cfs")
add_library(m3 ${files})
target_link_library(m3 cfs)
残念ながら、これでは十分ではありません。次を追加しない限り、コンパイル時にkernel2に含まれるファイルが見つかりません。
include_directories("${PROJECT_SOURCE_DIR}/include/PEM/kernel2")
私はそれを間違っていますか?おそらく、add_library ディレクティブを使用してインクルード ファイルも追加する必要がありますか?