【问题标题】:mingw. how to use static and dynamic linking both明威如何同时使用静态和动态链接
【发布时间】:2011-04-24 01:01:57
【问题描述】:

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

结果:

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

结果:

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

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

结果:

谁是罪魁祸首? 我还是 mingw 开发人员? 是否清楚地发送到它的错误跟踪器?

【问题讨论】:

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


    【解决方案1】:

    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

    【讨论】:

      猜你喜欢
      • 2019-08-13
      • 1970-01-01
      • 2010-10-23
      • 2017-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-15
      相关资源
      最近更新 更多