プロジェクトをセットアップして、その完全な機能を網羅するいくつかのダイナミックライブラリを構築しようとしています。ライブラリごとにサブフォルダがあります。サブフォルダーライブラリは相互に依存しているため、相互に関数を参照する必要があります。プロジェクトでエラーなしでCMakeを実行できたようですが、ビルドに行くと、ヘッダーがお互いを見つけるのに問題があります。ビルド時に、インクルードパスが正しく設定されていないようです。どうすればこれを修正できますか?インクルードパスを正しく設定するために必要な追加の手順はありますか?
構造はこんな感じ
root
CMakeLists.txt
bin
lib
lib0
CMakeLists.txt
lib0.h
lib0.cpp
lib1
CMakeLists.txt
lib1.h
lib1.cpp
...
ルートディレクトリのCMakeLists.txtには、次のような宣言があります。
set(ROOT /blah/blah/root)
include_directories(${ROOT}/lib0)
include_directories(${ROOT}/lib1)
add_subdirectory(lib0)
add_subdirectory(lib1)
サブフォルダーのCMakeLists.txtには、次のものがあります。
set(lib0_SOURCES "")
list(APPEND lib0_SOURCES lib0.cpp)
add_library(lib0_lib ${lib0_SOURCES})
そして、ライブラリの私のヘッダーは次のようになります(これがlib0.hであると仮定します):
#include "lib1/lib1.h"
...
CMakeはエラーなしで正常に動作しますが、コンパイルしようとすると、次のようなエラーが発生します。
In file included from /blah/blah/root/lib0/lib0.cpp:1:0:
/blah/blah/root/lib0/lib0.h:1:30: fatal error: lib1/lib1.h: No such file or directory