编译动态链接库

The*_*ake 3 windows mingw

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

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

mingw-g++ -fPIC test.cpp
Run Code Online (Sandbox Code Playgroud)

和使用这一行的图书馆:

mingw-g++ -rdynamic -shared -Wl,-soname,test.so.1 -o test.so test.o

它根本不起作用(使用GCC与Linux,类似的线路工作):fPIC和rdynamic由于某种原因被忽略.在尝试创建库时,它失败了,因为编译器尝试将它与应该被解析的对象链接起来,因为我将它与主二进制文件动态链接.

那你怎么用MinGW编译呢?

谢谢 :) !

rub*_*nvb 5

-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 
Run Code Online (Sandbox Code Playgroud)

不多也不少.

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

  • @Bionix 取决于选项和编译器。有时,忽略这样的选项会减少一些麻烦,例如在本例中。 (2认同)