私はCソースファイル(driver.c)を、ダイナミックライブラリ(libhello.so)ファイルを持つmainメソッドでコンパイルしようとしています。 mainメソッドで使用される関数.cソースファイルと.soダイナミックライブラリを一緒にコンパイルする
私はそれは罰金コンパイルし、期待通りのディレクトリにファイルを返す
gcc -shared -o libhello.so -fPIC hello.c
との.soファイルを作成します。
は、その後、私は
gcc driver.c libhello.so -o driver
と動的ライブラリlibhello.soとdriver.cファイルをコンパイルしようとそれは文句なしでコンパイルし、私は、実行可能「ドライバ」を実行しようとすると問題が起こります。私はfollwingエラーを取得する:
./driver: error while loading shared libraries: libhello.so: cannot open shared object file: No such file or directory
ファイルは、それがでコンパイルされているかのディレクトリで右が文字通りあるので、私は混乱している誰かが私のためにこれを説明できますか?
./libhello.soには、ユーザー定義のライブラリであるため、driver.cでコンパイルしています。 libhello.soを/ libディレクトリにコピーしましたか? – achal
./libhello.cでコンパイルしても問題なく動作しました。ありがとうございました! – Ethan
[共有ライブラリの読み込み中にエラーが発生しました](https://stackoverflow.com/questions/9482984/error-while-loading-shared-libraries) –