VS Code运行C语言Hello World代码出现arm64架构Undefined symbols报错
报错原因说明
该错误是Apple Silicon(M系列)芯片Mac编译C代码的高频问题,本质为编译链接阶段工具链未正确适配arm64架构。你提供的代码无语法错误,问题均出在编译环境或VS Code配置环节。
问题定位步骤
- 打开终端进入代码保存目录,手动执行编译命令验证:
clang -o hello hello.c(将hello.c替换为你的实际代码文件名)- 手动编译成功生成可执行文件:属于VS Code的C/C++插件配置错误
- 手动编译也报相同错误:属于本地开发环境缺失或配置错误
解决方案
情况1:手动编译正常,VS Code运行报错
- 按下
Command + Shift + P呼出VS Code命令面板 - 选择
C/C++: 编辑配置(JSON),在打开的c_cpp_properties.json文件中,确认"arch"字段值为"arm64",若为"x86_64"则修改后保存 - 再次呼出命令面板,选择
Tasks: 配置默认生成任务,选中C/C++: clang 生成活动文件 - 在自动生成的
tasks.json文件的args数组中,添加-arch和arm64两个参数,参考配置如下:
"args": [ "-fdiagnostics-color=always", "-arch", "arm64", "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}" ]
- 保存配置后按下
Command + Shift + B执行编译任务,编译完成后即可正常运行程序。
情况2:终端手动编译也报错
- 执行
xcode-select --install安装Xcode命令行工具,按照弹窗提示完成安装 - 安装完成后执行
sudo xcodebuild -license accept同意工具许可协议 - 执行
which clang验证clang路径,正常返回值应为/usr/bin/clang,若返回其他路径则说明第三方工具链覆盖了系统默认clang,修改Shell配置文件(.zshrc/.bashrc)将/usr/bin路径放到PATH的最前列即可。
内容的提问来源于stack exchange,提问作者Devam Purohit
相关产品推荐
相关产品推荐

