gpt4 book ai didi

c - 链接器错误: How can there be a duplicate symbol in just one file?

转载 作者:行者123 更新时间:2023-11-30 16:43:03 25 4
gpt4 key购买 nike

据我了解,由于重复符号而导致的链接器错误意味着:

  1. 一个符号在多个源文件中定义
  2. 编译后在两个不同的目标文件中产生相同的符号
  3. 因此链接器不知道他应该链接到两个符号中的哪一个。

在尝试从 www.ugfx.io 编译演示项目时,我遇到了此错误:

duplicate symbol _main in:
.build/obj/GFXLIB/demos/modules/gdisp/basics/main.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [.build/demotest.elf] Error 1

与我在网上找到的每个重复符号错误相比,只有一个文件被列为此错误的一部分。而属于这个目标文件的源文件只有一个主要符号。您可以查看here .

我该如何理解这个错误?其原因可能是什么?

最佳答案

当我在编译命令中两次包含相同的源文件时,就发生了这种情况,例如:

$gcc -o main main.c becool.c foo.c bar.c becool.c end.c

重复的 becool.c 导致重复符号错误。

所以,如果这是问题所在,只需检查您的编译命令并删除此类重复项

关于c - 链接器错误: How can there be a duplicate symbol in just one file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45566664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com