使用GCC编译C++程序时出现arm64架构未定义符号错误求助
问题原因
- 你的
gcc本质是Apple clang的别名(从gcc -v的输出能看到实际是Apple clang version 14.0.0),用它编译C代码时,默认不会自动链接C标准库。 - 注释掉
cout语句后,代码没有引用C++标准库的符号,所以编译能正常完成;但只要用到cout这类标准库对象,就会出现未定义符号的报错。
解决方法
有两种可行方案:
- 推荐方式:直接使用
g++命令编译,它会自动处理C++标准库的链接:g++ demo.cpp -o demo - 若坚持用
gcc命令,需要手动添加参数指定链接C++标准库:gcc demo.cpp -lstdc++ -o demo
内容的提问来源于stack exchange,提问作者scribe
相关产品推荐
相关产品推荐

