我希望在MinGW中生成一个dll文件,为此我有几个对象依赖项,其中一个对象依赖项是libdl.so,在unix中我只需添加以下内容:
g++ xx.o yy.o /usr/lib/libdl.so -o module.so
但在MinGW中,我不知道如何添加这个对象。有什么想法吗?
有一个MinGW端口的libdl库可供使用,就像在Unix下一样。引用自该网站:
该库实现了对dlfcn的包装,如POSIX和SUS中所指定,在Windows API中发现动态链接库函数。
它需要使用MinGW进行构建。
您可以从下载部分获取预编译的二进制文件(使用MinGW gcc 3.4.5)和捆绑的源代码。
以下命令可在标准MinGW安装中构建并安装它(从您的MinGW shell运行):
./configure --prefix=/ --libdir=/lib --incdir=/include && make && make install
要将您的库编译为DLL,请使用以下命令:
g++ -shared xx.o yy.o -ldl -o module.dll
我遇到了同样的问题(msys2,32位编译器版本等)。
对我来说,我发现libdl.a在/usr/lib中可用,但不在/mingw32/lib中。我通过将其链接到/mingw32/lib文件夹来解决了这个问题:
ln -s /usr/lib/libdl.a /mingw32/lib