Duplicate symbol_main

Duplicate symbol_main

本文关键字:main symbol Duplicate      更新时间:2023-10-16

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

/Users/LauraChaparro/Library/Developer/Xcode/DerivedData/Busqueda-ercduihvfosqcoczkrgljkkmgxam/Build/Intermediates/Busqueda.build/Debug/Busqueda.build/

Objects-normal/x86_64/Uno.o 中的重复符号_main和/Users/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,我将不胜感激!

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

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

您遇到的错误是链接器错误。它确切地告诉你出了什么问题。链接器发现它可以在浏览对象文件时多次找到定义的符号 *_main*。这使得链接器无法创建目标文件的可执行文件,因为它无法判断要使用的符号。它继续告诉你它在哪里找到这两个符号。

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

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

这可能通过以下方式发生:

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

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

这曾经发生在我身上,确保在你不希望你的主函数的文件中包含你的 .h 文件而不是你的 .c 文件。我的包含语句具有.c文件,它产生了相同的问题。

相关文章: