MacOS下使用gfortran时System库无法正确链接的问题
解决macOS Sonoma下gcc编译报错
ld: library 'System' not found的方案 先确保Xcode Command Line Tools完整且配置正确
执行以下命令重置并确认:sudo xcode-select --reset sudo xcodebuild -license accept如果之前没装过Xcode Command Line Tools,先运行
xcode-select --install完成安装。Sonoma的系统库依赖XCLT提供的SDK路径,旧软件的编译逻辑可能没适配新路径,这一步能解决大部分系统库找不到的问题。手动指定SDK路径再编译
先设置环境变量让gcc定位到正确的系统SDK:export SDKROOT=$(xcrun --show-sdk-path)之后再执行你的编译命令,这个变量会引导gcc自动指向正确的系统库目录。
调整编译时的链接参数
如果上面的方法无效,编译时直接添加系统库搜索路径和libiconv的路径:gcc-13 [你的编译参数] -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib/ -L/usr/local/opt/libiconv/lib/ -liconv注意把
gcc-13换成你Homebrew安装的gcc实际版本号(比如gcc-12),确保调用的是Homebrew版本的gcc,而非系统自带的gcc。重新修复Homebrew的gcc安装
执行强制重装命令,让Homebrew重新处理依赖和链接关系:brew reinstall gcc --force重装后用
brew info gcc确认安装路径,确保编译时调用的是Homebrew版本的gcc,避免和系统gcc产生冲突。
内容的提问来源于stack exchange,提问作者Pierdomenico
相关产品推荐
相关产品推荐

