回答
实际上,当链接库时,使用应该在定义之前。在处理提供其定义的库文件之前,需要知道任何未解决的符号。
什么问到订单,恐怕您必须手动完成。如果libA依赖于libB(即libA使用来自libB的符号),则必须按以下顺序链接:-lA -lB
。
这主要是文档问题。一个记录良好的库清楚地说明了它依赖的其他库,因此您可以计算出正确的链接顺序。
如果你不想读文档或没有可用的文件,试错始终是一个选择:)
我发现这是烦人了。我记得寻找一种工具来为我排序,但没有找到任何帮助。
最后,我决定使用暴力破解方法:如果您将两次列出所有库,例如-lA -lB -lA -lB
,它将保证每个库都在每个其他库之前(和之后)列出。
因此给定$(LIST)
库,您可以使用$(addprefix -l,$(LIST) $(LIST))
。
不是很优雅,有些放慢链接阶段,但工程。
Hummm,谢谢,但我知道这种方法可以得到* UGLY *如果你有15个库:D – hari 2011-04-12 21:56:05
@hari:你可以使用'--start-group'和'--end-group'选项(或' ('和' - )'),以避免重复。根据[binutils手册](http://sourceware.org/binutils/docs-2.21/ld/Options.html),它具有显着的性能成本。 – eriktous 2011-04-13 03:25:10
@eriktous:是的,最终有人必须确保重复不会发生。 – hari 2011-04-14 01:23:22
- 1. Maven-Assembly-Plugin包含特定的依赖关系及其传递依赖关系
- 2. make中的依赖关系顺序
- 3. 指定编译顺序依赖关系
- 4. Android Gradle依赖关系解析顺序
- 5. sbt库依赖关系顺序依赖吗?
- 6. Android - Google Play Services - Lib依赖关系
- 7. 依赖关系的nuget依赖关系
- 8. maven-shade-plugin:排除依赖关系及其所有传递依赖项
- 9. 依赖关系排序与循环依赖关系的检测
- 10. 依赖关系
- 11. 将EXE文件转换为MSI及其所有依赖关系
- 12. 列出nuget依赖关系及其当前版本
- 13. 混淆Winform及其外部依赖关系(dll)
- 14. jasmine-maven-plugin加载源文件及其依赖关系
- 15. Eclipse:维护多个product_configuration及其依赖关系
- 16. 松耦合复合对象节点及其依赖关系
- 17. 系统JS依赖的加载顺序
- 18. 加载DLL及其依赖
- 19. .net core:在运行时加载程序集及其非托管依赖关系
- 20. 从依赖于其他2个关系
- 21. iMX31依赖关系?
- 22. tools.jar依赖关系
- 23. Jira依赖关系
- 24. Maven依赖关系
- 25. WildFly依赖关系
- 26. Python依赖关系?
- 27. DLL依赖关系
- 28. asyntasks依赖关系
- 29. Maven依赖关系
- 30. Eclipse:Android依赖关系
谢谢。这就是我想确认的,没有任何魔法可以告诉你。 – hari 2011-04-12 21:55:37