Apple Silicon设备VSCode运行C++报arm64架构未定义符号错误求助
问题根因
你的报错属于代码语法错误,和Apple Silicon开发环境、VSCode插件、clang安装状态无关:
- C++要求所有可执行的函数调用逻辑必须放在函数内部,不允许在全局作用域直接执行
main();调用,这个非法语句导致编译器无法正确识别你定义的int main()作为程序入口,链接阶段找不到符合要求的main符号就抛出了对应报错。 - 额外规范提示:你代码中使用的
printf属于C标准库函数,当前引入的<iostream>虽然也能兼容编译,更规范的做法是额外引入<cstdio>(C风格)或<stdio.h>(C兼容风格)头文件;如果要用C原生输出可以替换为cout << "Hello World" << endl;。
修复方法
- 删除代码最后一行全局作用域下的
main();语句,修复后的完整可运行代码如下:
#include <iostream> #include <cstdio> using namespace std; int main(){ printf("Hello World"); return 0; }
- 保存文件后重新用Code Runner运行即可正常输出结果。
内容的提问来源于stack exchange,提问作者Samuel DiSorbo
相关产品推荐
相关产品推荐

