作成した DLL を使用してコードをコンパイルしようとしていますが、書き込み時に以下のエラーが発生します。./prog
./prog: 共有ライブラリの読み込み中にエラーが発生しました: libctest.so.1: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません
私はこちらのチュートリアルに従いましたが、モノラル アプリは dll の読み込みと関数の呼び出しに問題はありません。チュートリアルの重要な部分は
gcc -Wall -fPIC -c *.c
gcc -shared -Wl,-soname,libctest.so.1 -o libctest.so.1.0 *.o
mv libctest.so.1.0 /opt/lib
ln -sf /opt/lib/libctest.so.1.0 /opt/lib/libctest.so.1
ln -sf /opt/lib/libctest.so.1.0 /opt/lib/libctest.so
私のC#コードは
[DllImport("path/to/CDLL", CallingConvention = CallingConvention.Cdecl)]
public static extern void test();
で構築しました
gcc -Wall -L/opt/lib main.c -lctest -o prog
これは私が最初に変更したことです。prog.c から main.c へ。そこから./prog
、この質問の上部にあるエラーを取得するために単純に実行します。これはルートとして行うため、権限の問題は発生しません。私もそのようにchmod 755しました。私は何を間違っていますか?オープンユースです。を作成する必要があったため、/opt/lib
このパスが本来あるべき場所に登録されていないと考えています