この場合、単一のビルド/ディレクトリを使用することをお勧めします。 CMakeはおそらく別のlib1、lib2、lib3のディレクトリを生成します。 SHARED対STATICの切り替え
はCMakeLists.txt組織に関して(add_libraryマニュアルを参照してください)BUILD_SHARED_LIBSフラグを使用して
を行うことができ、選択はあなた次第です:
ます複数のadd_libraryエントリを持つ単一のCMakeLists.txtを構築できます。 これは単一のCMakeLists.txtを手に入れることができるという利点があります。
lib1、lib2、lib3ディレクトリに分散された複数のCMakeLists.txtにプロジェクトを分割し、でルートcmakelists.txtを使用することができます。この設定の利点は、1つの呼び出し(ビルド/ディレクトリ内)でビルドファイルを生成する方が簡単になることです。 lib3 /とmake/msbuildを呼び出します。 CMakeのは、依存関係が正しく
例1に構築されていることを確認します:
project(P)
# Setup lib1
set (LIB1_SOURCES ...) # Fill in your set of source-files here...
add_library(lib1 ${LIB1_SOURCES})
# Do similar for lib2 and lib3
target_link_libraries(lib2 lib1) # Indicate that lib1 is needed for lib2
target_link_libraries(lib3 lib1 lib2) # Indicate that lib2 and lib1 are needed for lib3
を実施例2:各サブディレクトリで
project(P)
add_subdirectory(lib1)
add_subdirectory(lib2)
add_subdirectory(lib3)
あなたは、あなたのCMakeLists.txtを書きます。例えば。 lib3の場合:
project(lib3)
set(LIB3_SOURCES ...) # Setup the list of sources here.
add_library(lib3 ${LIB3_SOURCES})
# You can refer to other libraries which should be available from the root cmakelists.
target_link_libraries(lib3 lib1 lib2)
大変ありがとうございます。 – Cartesius00