gpt4 book ai didi

c - 埃尔卡皮坦 : Undefined symbol "start" whenever I compile a C program

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

我最近安装了 OS X El Capitan,安装后我的 C 链接器出现了问题。每当我尝试编译任何程序时,它都会说

Undefined symbols for architecture x86_64:
"start", referenced from:
implicit entry/start for main executable
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status

无论我使用从 Xcode 开发工具安装的 Clang、从 Homebrew 安装的 Clang 还是从 Homebrew 安装的 GCC,都会发生这种情况。在我安装 El Capitan 后,它才开始发生。

最佳答案

我也遇到过类似的问题。将 macpro 升级到 OS X El Capitan 后,我无法使用从 Macport 安装的 GNU gcc 来编译我的程序。它显示相同的错误消息。然而 clang 在我的例子中工作得很好。

我在网上搜索了一下,发现了这个: Undefined symbol "start" while linking D program through LD它说在 gcc 选项中添加 -lcrt1.o 。我尝试了一下,确实解决了这个问题,所以你可以试试这个。

但我发现了更完整的修复(如下),所以请也尝试一下这个。

就我而言,问题是我有两个版本的 ld:/usr/bin/ld 和/opt/local/bin/ld。不知何故,clang 可以在 ld 的两个版本上正常工作,但 GNU gcc 只能在/usr/bin/ld 上正常工作。

所以我更改了 PATH 变量来告诉 GNU gcc 使用/usr/bin/ld,然后问题就解决了。

关于c - 埃尔卡皮坦 : Undefined symbol "start" whenever I compile a C program,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33577214/

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