Mac下VS Code编译Fortran报错library not found for -lSystem如何解决
问题修复步骤
1. 修复ld: library not found for -lSystem链接错误
该报错是由于Mac系统的命令行工具SDK库路径没有被Fortran编译器识别导致,按以下步骤操作:
- 先确认Xcode命令行工具安装完整,终端执行命令:
xcode-select --install,如果提示已安装,执行重置路径命令:sudo xcode-select --reset - 临时测试编译时,给编译命令加上系统库路径参数,使用Intel ifort编译器的命令为:
ifort 你的代码文件名.f90 -L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib,使用gfortran则替换开头的ifort为gfortran即可 - 要永久生效可以将路径添加到全局环境变量,Mac默认用zsh作为shell,执行命令:
echo 'export LIBRARY_PATH=$LIBRARY_PATH:/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib' >> ~/.zshrc,之后执行source ~/.zshrc让配置生效
2. 修复VS Code「the active environment is not selected」提示
该提示是VS Code相关扩展未识别到已安装的Intel oneAPI编译环境导致,按以下步骤操作:
- 首先手动激活Intel oneAPI环境验证可用性,终端执行命令:
source /opt/intel/oneapi/setvars.sh(默认安装路径,Apple Silicon系列Mac默认安装路径为/Users/你的用户名/intel/oneapi,对应替换即可) - 要让VS Code终端自动加载该环境,打开VS Code设置,搜索
terminal.integrated.env.osx,点击编辑settings.json,添加如下配置:
"terminal.integrated.env.osx": { "INTEL_ONEAPI_ROOT": "/opt/intel/oneapi", "PATH": "${env:PATH}:/opt/intel/oneapi/compiler/latest/mac/bin" }
如果是Apple Silicon芯片,将上面的路径替换为你自己的Intel oneAPI安装路径即可
- 重启VS Code后,点击右下角的环境选择提示,在弹出的列表中选中Intel oneAPI对应的Fortran编译器即可
3. 功能验证
配置完成后,在VS Code终端中执行编译命令:ifort 你的代码文件名.f90 -o hello,编译完成后执行./hello即可正常运行测试代码。
内容的提问来源于stack exchange,提问作者Yao Xu
相关产品推荐
相关产品推荐

