在MinGW中使用libdl.so

时间:2012-09-17 07:56:34

标签: dll mingw

我想在MinGW中生成一个dll文件,我有几个对象依赖项为了做到这一点,我的一个对象依赖项是libdl.so,我在unix中添加这个对象只是:

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

但是在MinGW,我不知道如何添加这个对象。任何想法?

2 个答案:

答案 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