5

MinGW で dll ファイルを生成したいのですが、それを行うためにいくつかのオブジェクトの依存関係があります。オブジェクトの依存関係の 1 つは libdl.so です。このオブジェクトを次のように unix に単純に追加します。

g++ xx.o yy.o /usr/lib/libdl.so -o module.so

しかし、MinGW では、このオブジェクトを追加する方法がわかりません。何か案は?

4

2 に答える 2

5

Unix と同じように使用できるlibdlの MinGW ポートがあります。ウェブサイトからの引用:

このライブラリは、POSIX および SUS で指定されているように、Windows API にあるダイナミック リンク ライブラリ関数の周りに dlfcn のラッパーを実装します。

ビルドには MinGW が必要です。

ダウンロード セクションからビルド済みのバイナリ (MinGW gcc 3.4.5 を使用) とバンドルされたソース コードを入手できます。

次のコマンドは、標準の MinGW インストールでビルドおよびインストールします (MinGW シェルから実行します)。

./configure --prefix=/ --libdir=/lib --incdir=/include && make && make install

ライブラリを DLL としてコンパイルするには、次のコマンドを使用します。

g++ -shared xx.o yy.o -ldl -o module.dll

于 2012-11-26T09:40:10.883 に答える
-1

同じ問題が発生しました(msys2、32ビット版のコンパイラなど)。

私にとって、libdl.a は /usr/lib では利用できるが、/mingw32/lib では利用できないことがわかりました。/mingw32/lib フォルダーにリンクすることで問題を解決できました。

ln -s /usr/lib/libdl.a /mingw32/lib
于 2016-02-05T12:40:46.770 に答える