mingw 3.4.5のインストールに問題がある可能性はありますか?または、これは他のライブラリで提供されていますか?
ご参考までに、dlfcn.hはdlopenやdlcloseなどが定義されている場所なので、かなり標準的なはずです。
mingw 3.4.5のインストールに問題がある可能性はありますか?または、これは他のライブラリで提供されていますか?
ご参考までに、dlfcn.hはdlopenやdlcloseなどが定義されている場所なので、かなり標準的なはずです。
dlfcn-win32は、win32dll関数の周りのdlfcnのラッパーです。
私の MinGW 3.4.5 インストールには含まれていないため、インストールに問題があるとは思えません。MinGW のメンテナーは、動的読み込みをサポートする Win32 関数 ( 、 など) を使用することを期待していると思いLoadLibrary()
ますGetProcAddress()
。
mingwは、win32 APIを実装するWindows用のコンパイラ(gccポート)の実装です。dlfcn.h(dlopen / dlsym et。al。)の関数はPOSIXであり、Windowsではないため、win32の実装は存在しません。msysまたはcygwinにラッパーがある可能性がありますが、Windows DLLとELF共有ライブラリメカニズムの違いは、WindowsAPIに移植するだけでよいことを意味するのではないかと心配しています。
私はこの問題を抱えていました.cygwinシェルの下のWindowsにdlfcn-win32-r19.tar.bz2をインストールした後、問題は解決しました.
https://code.google.com/p/dlfcn-win32/downloads/detail?name=dlfcn-win32-r19.tar.bz2
これが他の人の助けになることを願っています。
これは古い質問であることは知っていますが、使用されている可能性のある MinGW.org の GCC のバージョンに関係なく、今日でも関連性があります。
MinGW が、dlfcn.h で宣言された POSIX 固有の API ではなく、LoadLibrary() および GetProcAddress() に基づくネイティブの Win32 API での使用を意図していることに気づいた人は、完全に正しいです。したがって、MinGW.org は伝統的に dlfcn.h API 関数の実装を提供していません。
しかし、mingwrt-3.21 の時点で、RTLD_DEFAULT アドレス空間での dlsym() の POSIX 使用に類似した MinGW 機能を実装する必要がありました。したがって、MinGW ランタイムのこのバージョン以降、LoadLibrary()、GetProcAddress()、および PSAPI.DLL ネイティブ Win32 API のラッパーとして、POSIX dlfcn.h API の適合実装を維持するつもりです。
dlfcn.h: そのようなファイルまたはディレクトリはありません
これを解決するには、.pro ファイルに追加する必要がありました。
DEFINES += _WINDOWS