KDevelop で共有ライブラリを開発したいと考えています。しかし、ライブラリのテンプレートが表示されません。
C++ テンプレートからプロジェクトを作成し、両方のプロジェクトで CMake ファイルを編集する必要があると思います。残念ながら、私は CMake を使用したライブラリ開発の経験がありません。また、そのライブラリを使用するプロジェクトをビルド/実行するときのライブラリの自動ビルドである KDevelop との良好な統合も必要です。
ライブラリを作成するには、次のadd_library
コマンドを使用します。
add_library(<name> [STATIC | SHARED | MODULE]
[EXCLUDE_FROM_ALL]
source1 source2 ... sourceN)
例えば:
add_library(mylib SHARED
a.h
a.cpp
b.h
b.cpp)
リストされた 4 つのファイルから共有ライブラリを作成します。
プログラム ( で作成add_executable
) がライブラリを使用している場合、 でリンクを指定するとtarget_link_libraries
、CMake によって依存関係が追加されるため、a.cppを変更すると、ライブラリmylibが再構築され、アプリケーションが再リンクされます。
例えば
add_executable(myprog
main.cpp)
target_link_libraries(myprog
mylib)
編集:
ライブラリとプロジェクトが別のフォルダーにある場合は、add_subdirectory
.
各ディレクトリに CMakeList.txt を作成add_library
し、アプリケーションで使用するライブラリ フォルダで、 と を使用add_program
しtarget_link_libraries
ます。
親フォルダーの使用add_subdirectory
では、最初にライブラリ フォルダーを追加し、次にプログラム フォルダーを追加します。これにより、ライブラリがアプリケーションで使用できるようになります。次に、親 CMakeList に対して cmake を実行します。