Linux で C++ を使用する DLL
-
02-07-2019 - |
質問
Googleを使用してLinux上でDLLを作成する方法を見つけようとしましたが、非常に混乱する情報が得られました。
Linux 上でダイナミック リンク ライブラリを作成することは可能ですか?そうでない場合、実行中の複数のプログラムから別のモジュールのコードを呼び出すことができる他の手段はありますか?
解決
これは、DLLがWindows用語であるためです。 Linuxでは、共有ライブラリと呼ばれます。
http://www.linux。 org / docs / ldp / howto / Program-Library-HOWTO / shared-libraries.html
他のヒント
として スクリブズ Linux であなたが求めている用語は共有オブジェクトだと言いました。これらにはファイル拡張子が付けられます .so
.
gcc を使用すると、 .so
を使用して -shared
オプション。
例えば。
gcc -shared -o libfoo.so foo.c
共有オブジェクトに lib*.so という名前を付けた場合、次のコマンドを使用してそれに対してコンパイルできます。 -l
リンカーのオプション。この状況では「lib」が推測されることに注意してください。
つまり。
ld -o a.out -lfoo someobject.o
あるいは、ロードすることもできます .so
実行時のファイルと同様に、 .dll
s、dlopen() と dlsym() を使用します。
開始したばかりの場合は多くですが、ある時点でUlrich Drepper’ s“ 共有ライブラリの作成方法。”
DLLファイルではなく.SOファイル、つまりStackOverflowではなく共有オブジェクト:)が必要なのでしょうか。
所属していません StackOverflow