C++编译提示x86_64架构缺少_main符号报错如何修复?
问题原因
- C标准规定,可执行程序的默认入口是
main函数,所有要生成可执行文件的C代码必须包含且仅包含一个全局的main函数定义 - 你当前的代码仅定义了
dummyfunction函数,没有提供main函数,链接器在组装可执行文件时找不到要求的入口符号,因此抛出该链接错误。
修复方案
在代码中添加main函数定义即可,如果你需要执行dummyfunction的逻辑,可以在main中调用它,修复后的示例代码如下:
#include <iostream> void dummyfunction(void) { std::cout<< "this is"; } int main() { // 可以按需调用你写的函数 dummyfunction(); return 0; }
- 如果你只是要编译生成静态库/动态库文件而不是可执行文件,那需要修改编译指令,以clang为例,添加
-c参数只做编译不做链接,就不会触发要求main函数的检查:clang -c your_file_name.cpp
内容的提问来源于stack exchange,提问作者Nguyễn Khôi
相关产品推荐
相关产品推荐

