【发布时间】:2013-08-07 04:02:42
【问题描述】:
已经浪费了几乎整整 4 天的时间来编译这个包。它在 OSX 10.6 中编译得很好,但是当我尝试在 linux(Kubuntu 10.04、3.8.0.27 内核)机器上编译它时给出未定义的引用错误。
错误似乎是 makefile 的顺序错误,但是 AFAIK,我是唯一一个在编译它时遇到问题的人。因此,我试图找出造成差异的原因。软件包相当大,编辑 Makefile 并在这里和那里移动 30-50 个库似乎不是一个好主意。
这是我认为到目前为止我发现的不同之处
- 编译器 - gcc-4.7 (Linux) 和 llvm-gcc-4.2 (OSX)
- 编译器标志 --shared (Linux) 和 -dynamic -dynamiclib -undefined dynamic_lookup (OSX)
大家有什么建议吗?
我尝试使用
clang++和llvm-gcc-4.7作为编译器,但我认为它仍然使用相同的链接器(ld?)。所以我可以尝试指定使用llvm?我该怎么做?--shared标志与 OSX 中的dynamic -dynamiclib -undefined dynamic_lookup标志有什么不同吗?Linux 内核或发行版重要吗? (我认为他们在 CentOS 机器上编译得很好)
请帮忙。 非常感谢。
【问题讨论】:
标签: c++ linker clang llvm llvm-gcc