更新新Mac(OS 10.8)后,我和我的同事无法编译我们一直在使用的C ++代码。我们没有编码经验,如果有人能指出我们在新手级别的正确方向,我将非常感激。我们看到有很多关于这类错误的帖子,但是如果它们中的任何一个是相关的,我们都看不到如何,除了这些帖子似乎都说这可能是一个链接器问题。
当我们做“制造”时,有很多输出。第一部分是:
我们$ make g ++ -o ourProg 1.o main.o 2.o -L / Prog / libraries -L / Prog / support_libraries -l_codea -l_codeb ...体系结构x86_64的未定义符号:
最后一部分是:
ld:找不到架构x86_64 clang的符号:错误:链接器 命令失败,退出代码为1(使用-v查看调用)make:*** [ourProg]错误1
不幸的是,使用代码的一个条件是我们无法在线发布,因此可能没有足够的信息可供任何人提供帮助。
对我来说最突出的是,看起来像Clang被用于连接,即使我们已经明确地说我们希望g ++用于编译。在makefile中,我们说:
CC = g ++
答案 0 :(得分:4)
(在问题编辑中由OP回答。转换为社区维基答案。请参阅Question with no answers, but issue solved in the comments (or extended in chat))
OP写道:谢谢大家;问题已经解决了。我不确定是否在问题的任何地方表明这一点,抱歉。我想描述我们如何修复它,以防任何其他新手无法理解关于这个问题的更复杂的帖子!
首先,我们通过更新到OS 10.9并安装新的命令行工具来遵循此处的建议。然后我们遇到了一个论坛帖子,讨论了链接问题的来源。在OS 10.8和10.9中,C ++默认标准库是不同的。所以我们首先在makefile中添加了一个新的include:
/usr/bin/clang++
然后我们添加到编译器标志行和库:
-stdlib=libstdc++