現在、私はユーティリティ共有ライブラリをインストールする簡単なプロジェクトを作成しています。私はroot権限を持っていないので、私はシステムのlibフォルダ内の共有ライブラリをインストールすることはできませんCMake共有ライブラリ実行権限がインストール場所にありません
cmake_minimum_required (VERSION 2.6)
project(MathLibs CXX)
add_library (${PROJECT_NAME} SHARED
fact.cpp
fibo.cpp
isPrime.cpp
)
install (TARGETS ${PROJECT_NAME}
RUNTIME DESTINATION ${PROJECT_NAME}/bin
LIBRARY DESTINATION ${PROJECT_NAME}/lib
ARCHIVE DESTINATION ${PROJECT_NAME}/lib)
:
は、ここに私のCMakeListsです。私は$ HOME/appsにCMAKE_INSTALL_PREFIXを上書きします。
私はそれが実行権限を持っていた共有ライブラリを構築します。
-rw-rw-r-- 1 ameya ameya 9714 Jun 18 20:02 CMakeCache.txt
drwxrwxr-x 5 ameya ameya 4096 Jun 18 20:02 CMakeFiles
-rw-rw-r-- 1 ameya ameya 2701 Jun 18 20:02 cmake_install.cmake
-rw-rw-r-- 1 ameya ameya 84 Jun 18 20:02 install_manifest.txt
-rwxrwxr-x 1 ameya ameya 6808 Jun 18 20:02 libMathLibs.so
-rw-rw-r-- 1 ameya ameya 7748 Jun 18 20:02 Makefile
drwxrwxr-x 3 ameya ameya 4096 Jun 18 20:02 test
消え実行権限をインストールした後: はここで共有ライブラリとビルドフォルダです。 ここでは、インストールフォルダの場所です:
-rw-r--r-- 1 ameya ameya 6808 Jun 18 20:02 libMathLibs.so
私はこれを修正するためにCMakeLists.txtに行方不明です何が? Linuxのライブラリにが実行する必要はありませんので、cmakeのがインストールライブラリに実行権限を設定していないこと
@Tsyvarevに返信いただきありがとうございます。後で、私はこの共有ライブラリに実行可能なアクセス許可を追加する-DCMAKE_INSTALL_SO_EXE = OFFを使用できることを知りました。また、Debianなどの異なるプラットフォーム上の共有ライブラリの扱いに違いがあります。共有ライブラリはすべて実行可能ビットなしでインストールされますが、他の味は異なるかもしれません。 – AmeyaVS