赞
踩
- Undefined symbols for architecture arm64:
- "_main", referenced from:
- implicit entry/start for main executable
- ld: symbol(s) not found for architecture arm64
- clang: error: linker command failed with exit
- code 1 (use -v to see invocation)
这个错误信息在Visual Studio Code(VSCode)中出现时,通常意味着链接器(Linker)在编译和链接你的C或C++程序时,无法找到'_main'函数的定义。'_main'是C和C++程序执行的入口点,在可执行文件中必须存在。
对于“Undefined symbols for architecture arm64”这一部分,它特指编译的目标架构是arm64(苹果M1芯片或其他64位ARM架构),而在该架构下,某些必要的符号(这里是_main函数)没有被找到。
- 确保主程序文件(通常是含有'int main()'函数的文件)已经被正确包含在构建过程中。如果
- 将'main'函数放在了一个单独的'.cpp'文件中,确保该文件已被添加到项目或任务配置中,并且会被
- 编译器编译。
- 在VSCode中使用CMakeLists.txt或者其他构建工具(如g++命令行参数或者 tasks.json
- 文件等)时,请确保编译目标架构设置为`arm64`并且所有的源文件都被正确引用和链接。
- 如果使用了VSCode的C/C++扩展进行编译,确保的'c_cpp_properties.json'、'launch.json'
- 以及'tasks.json'等配置文件都正确地包含了所有需要编译和链接的源文件路径。
- 对于Mac M1用户,确保安装了Xcode Command Line Tools,因为它们提供了针对arm64架构
- 的编译工具链。
- 如果你的程序依赖于某个静态库或框架,并且这个库本身不支持arm64架构,也会导致此问题。
- 确保所有依赖的库都已经适配了arm64平台。
清理之前的编译输出,然后完全重新构建项目,有时候缓存的问题可能导致链接错误。
- 如错误提示中建议的,通过添加 '-v' 参数给clang或ld以查看详细的编译和链接过程,这有
- 助于找出哪个环节出现了问题。
VsCode配置的问题
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。