共有ライブラリについて質問
Posted: 2016年1月20日(水) 17:46
お世話になっております.
今回共有ライブラリを使ったプログラムを作成したいと思い,
サンプルを作りましたがうまくいきませんでした.
以下に詳細を記載します.
ldd.h ldd.hpp ldd_sample.cpp 実装環境
VMWare Lubunt
コンパイル
% g++ -shared -fpic -x c++ ldd.hpp -o libldd.so
% g++ ldd_sample.cpp -lldd -L .
実行結果
% ./a.out
./a.out: error while loading shared libraries: libldd.so: cannot open shared object file: No such file or directory
% ldd a.out
linux-vdso.so.1 => (0x00007ffd15356000)
libldd.so => not found
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007efef38e3000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007efef3519000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007efef3211000)
/lib64/ld-linux-x86-64.so.2 (0x00007efef3bf2000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007efef2ffb000)
ldd_Sampleからsay()関数を実行したいです.
ですが,上記の結果を見ていただければ分かるように,
libldd.so => not found
となっています.
この対処法を調べましたところ,LD_LIBRARY_PATH環境変数を設定すればいいということでした.
ですので,libldd.soがあるフォルダを設定しました.
% echo $LD_LIBRARY_PATH
/home/myname/Desktop/c++_sample
ですが,ldd a.out の結果は変わりませんでした.
自分では何が問題なのかが分かりません.
皆さんのお力をお借りいただければ幸いです.
よろしくお願いいたします.
今回共有ライブラリを使ったプログラムを作成したいと思い,
サンプルを作りましたがうまくいきませんでした.
以下に詳細を記載します.
ldd.h ldd.hpp ldd_sample.cpp 実装環境
VMWare Lubunt
コンパイル
% g++ -shared -fpic -x c++ ldd.hpp -o libldd.so
% g++ ldd_sample.cpp -lldd -L .
実行結果
% ./a.out
./a.out: error while loading shared libraries: libldd.so: cannot open shared object file: No such file or directory
% ldd a.out
linux-vdso.so.1 => (0x00007ffd15356000)
libldd.so => not found
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007efef38e3000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007efef3519000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007efef3211000)
/lib64/ld-linux-x86-64.so.2 (0x00007efef3bf2000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007efef2ffb000)
ldd_Sampleからsay()関数を実行したいです.
ですが,上記の結果を見ていただければ分かるように,
libldd.so => not found
となっています.
この対処法を調べましたところ,LD_LIBRARY_PATH環境変数を設定すればいいということでした.
ですので,libldd.soがあるフォルダを設定しました.
% echo $LD_LIBRARY_PATH
/home/myname/Desktop/c++_sample
ですが,ldd a.out の結果は変わりませんでした.
自分では何が問題なのかが分かりません.
皆さんのお力をお借りいただければ幸いです.
よろしくお願いいたします.