MinGW的。如何使用静态和动态链接

时间:2010-10-11 22:07:07

标签: c++ c build g++ mingw

让我们制作最简单的应用程序:

alt text

alt text

alt text

alt text

结果: alt text

确定。有用。 让我们在这里添加一些带有默认动态链接的SDL!

alt text

alt text

alt text

alt text

结果:

alt text 效果很好。在stdout.txt我们可以看到“puchuu”

让我们改变一下makefile。 只需将2个目标文件分组到静态lib:

alt text

结果:

alt text

谁应该受到指责? 我或mingw开发人员? 发送给它的bug追踪器是否清楚?

1 个答案:

答案 0 :(得分:3)

mingw不应该受到责备。使用(GNU)链接器,必须以反向依赖顺序列出静态库。

如果libpuchuu.a中的某些内容依赖于libSDL中的某些内容,则

g++ -o program.exe libpuchuu.a -lSDL将无效。

应为g++ -o program.exe -lSDL libpuchuu.a

如果您有循环依赖,您甚至必须列出两次。考虑例如libfoo.a依赖于libbar.a中的东西,libbar.a依赖于libfoo.a中的东西。你必须这样做:g++ -o fooprogram libbar.a libfoo.a libbar.a