You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

g++编译C++程序出现undefined reference to `main'错误求助

g编译C程序出现undefined reference to `main'错误求助

嗨,我来帮你排查这个问题!这个错误是链接器找不到程序的入口点main函数导致的,我给你梳理几个常见原因和对应的解决办法:

  • 检查main.cpp里的main函数定义是否正确
    C++程序的入口函数必须符合标准签名,比如下面这种规范写法:

    #include <iostream>
    int main() {
        std::cout << "Hello World!" << std::endl;
        return 0;
    }
    

    要注意别犯这类低级错误:函数名写错(比如写成Main、MAIN)、把main放到了自定义命名空间里、或者签名不符合标准(比如写成void main(),虽然部分编译器兼容,但严格来说不符合C++标准,也可能触发链接问题)。

  • 确认你编译的是正确的文件
    先检查当前目录下的main.cpp是不是你写的那个包含main函数的文件:
    可以用命令 cat main.cpp 查看文件内容,看看是不是空文件、代码没写完,甚至是不是文件名拼写错了(比如实际是Main.cpp,在Linux这类区分大小写的系统里,g++ main.cpp会编译一个不存在的空文件)。

  • 核对编译命令的正确性
    你用的g++ main.cpp -o main是标准的编译+链接命令,本身没问题,但可以再确认下有没有误加奇怪的选项(比如之前加了-c只编译不链接,但你这里没这个参数),或者是不是不小心用了gcc而非g++(不过从错误信息看链接器是g++调用的,这个可能性不大)。

排查完上面几点后重新编译,应该就能解决问题啦!

备注:内容来源于stack exchange,提问作者Jack Summers

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 10:53:11