我想在MinGW中生成一个dll文件,我有几个对象依赖项为了做到这一点,我的一个对象依赖项是libdl.so,我在unix中添加这个对象只是:
g++ xx.o yy.o /usr/lib/libdl.so -o module.so
但是在MinGW,我不知道如何添加这个对象。任何想法?
答案 0 :(得分:4)
你可以在Unix下使用MinGW port of libdl。从网站引用:
该库实现了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
答案 1 :(得分:-1)
我遇到了同样的问题(msys2,32位版本的编译器等)。
对我来说,我发现libdl.a在/ usr / lib中可用,但在/ mingw32 / lib中没有。我能够通过将它链接到/ mingw32 / lib文件夹来解决问题:
ln -s /usr/lib/libdl.a /mingw32/lib