私は比較的新しいCMake
です。私はexternal_library
という名前の共有ライブラリにリンクするライブラリを構築する小さなプロジェクトを開発しました。cmake: "make install"はUbuntuのライブラリとリンクしません
cmake_minimum_required(VERSION 2.8.12)
project(project_name)
include_directories(path_to_external_library_source_code)
add_subdirectory(path_to_external_library_header_files subproject/external_library)
target_link_libraries(project_name external_library)
install(TARGETS project_name DESTINATION installation_path)
私は(make
を使用して)プロジェクトをビルドするとき、それは完璧に動作し、それは(私がldd
コマンドでそれをチェックして)正しくリンクを作成します。私のCMakeLists.txt
ファイルには、次のようになります。ただし、インストールしようとすると(make install
)、インストールパスに生成されたファイルは指定された共有ライブラリとリンクされません。
ldd
を再度使用して、インストールパスで生成されたライブラリで共有ライブラリが見つからないことを確認しましたが、ビルドパスで生成されたライブラリにあります。どうすればこの問題を解決できますか?
ありがとうございました。
Pd:Ubuntu 16.04.2 LTS
にCMake 3.5.1
を使用しています。
find_library
を使用して解決することができることを見出した
'add_subdirectory(path_to_external_library_header_filesサブプロジェクト/外部ライブラリ)'とは何と思いますか? 'path_to_external_library_header_files'にCMakeLists.txtファイルがありますか?なぜあなたのプロジェクトの一環として外部ライブラリをbulldしようとしていますか? – kdopen
はい、共有ライブラリの '.cpp'ファイルと' .h'ファイルをプロジェクトに追加する 'path_to_external_library_header_files'に' CMakeLists.txt'があります。 – GLR
私は共有ライブラリを作成したライブラリの一部にしたいので、 'add_subdirectory'を使用しています(私はそれを正しくやっていればいいと思います)。 – GLR