gpt4 book ai didi

无法在 Mac Mojave 上将任何 C 程序与 gcc 链接

转载 作者:太空宇宙 更新时间:2023-11-04 07:44:44 24 4
gpt4 key购买 nike

我刚刚更新到 OSX 10.14.6 (Mojave),现在,在升级 Xcode 和迁移 MacPorts 之后,即使是最简单的 C 程序也无法与任何 gcc 版本链接。比如链接程序

int main() {}

给出:

dcs16> gcc test.c 
ld: library not found for -lSystem
collect2: error: ld returned 1 exit status

我在/opt/local/bin 中使用 gcc 6.5:

dcs16> gcc --version
gcc (MacPorts gcc6 6.5.0_4) 6.5.0

Xcode版本是11.0,我已经安装了这个包(推荐用于解决其他人遇到的一些编译问题):

/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

非常感谢任何帮助。

注意:用clang链接是没有问题的。

注意 gcc 搜索目录是:

test> gcc -print-search-dirs
install: /opt/local/lib/gcc6/gcc/x86_64-apple-darwin18/6.5.0/
programs: =/opt/local/libexec/gcc/x86_64-apple-darwin18/6.5.0/:/opt/local/libexec/gcc/x86_64-apple-darwin18/6.5.0/:/opt/local/libexec/gcc/x86_64-apple-darwin18/:/opt/local/lib/gcc6/gcc/x86_64-apple-darwin18/6.5.0/:/opt/local/lib/gcc6/gcc/x86_64-apple-darwin18/:/opt/local/lib/gcc6/gcc/x86_64-apple-darwin18/6.5.0/../../../../../x86_64-apple-darwin18/bin/x86_64-apple-darwin18/6.5.0/:/opt/local/lib/gcc6/gcc/x86_64-apple-darwin18/6.5.0/../../../../../x86_64-apple-darwin18/bin/
libraries: =/opt/local/lib/gcc6/gcc/x86_64-apple-darwin18/6.5.0/:/opt/local/lib/gcc6/gcc/x86_64-apple-darwin18/6.5.0/../../../../../x86_64-apple-darwin18/lib/x86_64-apple-darwin18/6.5.0/:/opt/local/lib/gcc6/gcc/x86_64-apple-darwin18/6.5.0/../../../../../x86_64-apple-darwin18/lib/:/opt/local/lib/gcc6/gcc/x86_64-apple-darwin18/6.5.0/../../../x86_64-apple-darwin18/6.5.0/:/opt/local/lib/gcc6/gcc/x86_64-apple-darwin18/6.5.0/../../../

最佳答案

添加“-L/usr/lib”即可解决问题。

同样从 Xcode 11.0 降级到 Xcode 10.3 也解决了这个问题!注意:我还检查了刚刚发布的 Xcode 11.1,但问题仍然存在于 11.1。

补充说明:另一个程序员告诉我升级到 OSX 10.15 可以解决问题。所以这是 OSX 10.14 和 Xcode 11 之间的不兼容性。

[添加于 28/12/2020] 另一位程序员告诉我他在使用 Xcode 12.3 时遇到了这个问题。他的解决方案是降级到 12.2。

关于无法在 Mac Mojave 上将任何 C 程序与 gcc 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58072318/

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