我的mingw 3.4.5安装可能有问题吗?或者这是在其他浮动的图书馆提供的吗?
如果您想知道,dlfcn.h是定义dlopen和dlclose之类的东西,所以它应该是非常标准的
答案 0 :(得分:10)
dlfcn-win32是围绕win32 dll函数的dlfcn的包装器
答案 1 :(得分:6)
这不在我的MinGW 3.4.5安装中,所以我怀疑你的安装是否有问题。我想MinGW维护者希望你使用支持动态加载的Win32函数(LoadLibrary()
,GetProcAddress()
等)。
答案 2 :(得分:3)
mingw是一个实现win32 API的windows(gcc端口)编译器的实现。 dlfcn.h(dlopen / dlsym等人)中的函数是POSIX,而不是windows,因此不存在win32实现。在msys或cygwin中可能有一个包装器,但我担心windows DLL和ELF共享库机制之间的差异意味着你只需要移植到windows API。
答案 3 :(得分:1)
我遇到了这个问题,在cygwin chell下的windows上安装dlfcn-win32-r19.tar.bz2之后,问题就解决了。
https://code.google.com/p/dlfcn-win32/downloads/detail?name=dlfcn-win32-r19.tar.bz2
我希望这有助于其他人。
答案 4 :(得分:0)
我知道这是一个老问题,但今天仍然有用,无论MinGW.org的GCC版本可能正在使用。
那些观察到MinGW真正打算与基于LoadLibrary()和GetProcAddress()的本机Win32 API一起使用的人,而不是dlfcn.h中声明的POSIX特定API,是完全正确的;因此,MinGW.org传统上没有提供dlfcn.h API函数的任何实现。
但是,从mingwrt-3.21开始,我需要实现MinGW功能,这类似于在RTLD_DEFAULT地址空间上使用dlsym()的POSIX。因此,从此版本的MinGW运行时开始,我打算维护POSIX dlfcn.h API的一致性实现,作为LoadLibrary(),GetProcAddress()和PSAPI.DLL本机Win32 API的包装。
答案 5 :(得分:0)
dlfcn.h:没有这样的文件或目录
要解决此问题,我必须添加到.pro文件中:
DEFINES += _WINDOWS