5

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

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

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

4

2 回答 2

5

有一个libdl 的 MinGW 端口,您可以像在 Unix 下一样使用它。引自网站:

该库围绕 Windows API 中的动态链接库函数实现了 dlfcn 的包装器,如 POSIX 和 SUS 中所指定。

它需要 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

于 2012-11-26T09:40:10.883 回答
-1

我遇到了同样的问题(msys2、32位版本的编译器等)。

对我来说,我发现 libdl.a 在 /usr/lib 中可用,但在 /mingw32/lib 中不可用。我能够通过将其链接到 /mingw32/lib 文件夹来解决问题:

ln -s /usr/lib/libdl.a /mingw32/lib
于 2016-02-05T12:40:46.770 回答