windows - 编译动态链接库

标签 windows mingw

我目前正在尝试使用 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/

相关文章:

windows - 批处理命令删除具有特定名称和年龄的文件夹

c++ - MinGW + GVim 编译 C/C++ 失败(没有那个文件或目录)

windows - 对 IID_ImageList 的 undefined reference

python - 有没有快速了解另一台计算机的状态的方法?

python - Windows XP - 在 Python 中以编程方式静音/取消静音音频

c - 使用 golang 的 Windows Hook

c++ - 在 Windows 8 上使用 Code::Blocks 设置 SFML

c - Makefile 未编译目录中的所有 C 文件

windows - 在 Windows 8.1 : Trying to override Windows/System32/find. exe 上为 CMD 设置系统路径

node.js - 无法识别的 PORT 命令