libImmortal.a
わかりました、と呼ばれるいくつかのライブラリを構築したとしましょうlibUglyFace.so
。1 つ目は に~/LakeOfBlood/lib
あり、2 つ目は にトラフmake install
でインストールされ/usr/lib
ます。ボーナスで私はldconfig
今~/LakeOfBlood
私は編集したいですCMakeList.txt
。ライブラリを追加します:
project (LOB)
.
.
.
# (the binary will be built in ~/LakeOfBlood)
link_directories(${LOB_BINARY_DIR}/lib)
.
.
.
target_link_libraries(LakeOfBlood UglyFace Immortal)
しかし、コンパイルするとld
見つかりませんImmortal
変更することでまだリンクできます:
target_link_libraries(LakeOfBlood UglyFace Immortal)
に
target_link_libraries(LakeOfBlood UglyFace /home/OftheBeast/LakeOfBlood/Immortal.a)
その後ld
動作します。
...BUTT、はい af* * * * * * "but" があります...
LakeOfBlood を開始すると、次のようになりました。
./LakeOfBlood: error while loading shared libraries: libUglyFace.so: cannot open shared object file: No such file or directory
2 つのライブラリは私のものではなく、OccultGod
. もしそうなら、私はldd OccultGod
得ました:
libUglyFace.so => /home/OfTheBeast/LakeOfBlood/lib/libUglyFace.so (0x0000666)
だから今、
- 上記のものの代わりに
OccultGod
使用するにはどうすればよいですか?/usr/lib/libUglyFace.so
(彼自身のトラウトCMakeList.txt
) - どうすれば修正できます
CMakeList.txt
かlibImmortal.a
LakeOfBlood
見えない理由を教えてください/usr/lib/libUglyFace.so
。つまり/usr/lib
、標準パスは正しいですか?次に、そこにあるすべてのライブラリは、バイナリによって自動的に検出されると思いました...