重复符号_main

时间:2012-05-18 10:58:02

标签: c++ xcode

我一直在寻找这个问题的解决方案,但它们对我不起作用!编译程序时遇到了很多问题。 当我试图在Xcode中执行程序时出现:

  重复符号_main /LauraChaparro/Library/Developer/Xcode/DerivedData/Busqueda-ercduihvfosqcoczkrgljkkmgxam/Build/Intermediates/Busqueda.build/Debug/Busqueda.build/Objects-normal/x86_64/main.o for architecture x86_64

我不明白为什么会这样!是一个C ++项目......或者如果你能推荐我另一个IDE,我会非常感激!

2 个答案:

答案 0 :(得分:8)

看起来您在用于制作main目标文件的一些代码中定义了Uno.o。您只能有一个main,因此用于构建库的对象不应定义main。这应该只在应用程序本身中定义。

这是一个链接器错误,您可能会遇到其他IDE。您需要找到定义Uno.o main的位置并将其删除。

答案 1 :(得分:3)

您遇到的错误是链接器错误。它告诉你到底出了什么问题。链接器发现它可以找到多次查找目标文件的符号* _main *。这使得链接器无法创建目标文件的可执行文件,因为它无法告知您要使用哪个符号。它继续告诉你它在哪里找到了两个符号。

进入Uno.o文件(我将假设来自编译Uno.cpp文件) 另一个来自main.o文件(来自main.cpp文件)

这意味着链接器可以在某种程度上找到两个文件中main方法的符号。

这可能发生在:

  • 在 Uno.cpp和main.cpp中定义函数
  • 在标头中放置了非内联 定义,并将其包含在Uno.cpp文件和main.cpp文件中(或包含其他内容的包含)包括等等。)

作为您对另一个IDE的请求,我想提醒您,IDE中的编译错误或链接器错误都不是错误,在绝大多数情况下,问题是IDE的用户做错了。