共有オブジェクトを使用する単純なプログラムを作成し、それをdlopen()
で開きます。私はまた、コンパイルされ、共有オブジェクト以下のようにリンク:私はそれがCで共有オブジェクトをリンクするにはどうしたらいいですか?
cannot open libmylib.so: no such file or directory
のようなものは、私はインターネットを検索し、私が持っていることが判明した初めてのプログラムを実行しようとしたとき
gcc -o libmylib.so libmylib.c -shared -fPIC -Wall
gcc -o program program.c -L. -lmylib -ldl -Wall
プログラムを実行するために私の共有オブジェクトを/lib/i386-linux-gnu/
にコピーしてください。だから私はそうした、それは働いたが、私は他の方法でそれをやろうとしたので、libmylib.so
を/lib/i3686-linux-gnu/
ディレクトリから削除した。今私がプログラムを実行しようとしているときにエラーは表示されず、Segmentation fault
と続きます。共有オブジェクトはどこにも見つかりませんが、何もコピーせずにリンクするにはどうすればよいですか?
私はあなたがプログラムをコンパイルするとき、あなたはそれを正しくリンクUbuntuの11.10
ルートとして 'ldconfig'を実行すると、セグメンテーションフォールトは消えますか? – zwol