我目前正在尝试使用 Windows 和 MinGW 编译动态链接库(用于插件系统)。

我使用这个命令行编译每个对象:

mingw-g++ -fPIC test.cpp

使用这一行的库:
mingw-g++ -rdynamic -shared -Wl,-soname,test.so.1 -o test.so test.o
它根本不起作用(将 GCC 与 Linux 一起使用,但类似的行仍然有效):出于某种原因,fPIC 和 rdynamic 被忽略。
在尝试创建库时,它失败了,因为编译器尝试将它与应该解析的对象链接,因为我将它与主二进制文件动态链接。

那么如何使用 MinGW 编译它呢?

谢谢 :) !

最佳答案

-fPIC-rdynamic 被忽略,因为它们不用于 Windows。

此外,.so 不是 Windows 上库的正确输出扩展名。

要使用 GCC 为/在 Windows 上创建共享库:

mingw-g++ -c file.cpp -o file.o
mingw-g++ -shared -Wl,--out-implib,libfile.a -o file.dll file.o

不多也不少。

而且,文档总是很可爱:http://www.mingw.org/wiki/sampleDLL

关于windows - 编译动态链接库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5674613/

10-15 00:58