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

使用MinGW编译含类C++程序运行报错:Entry Point Not Found 求助

解决MinGW编译含类C++程序时的"Entry Point Not Found"错误

嘿,我来帮你搞定这个头疼的问题!你遇到的这个「Entry Point Not Found」错误,大概率是下面几个原因导致的,咱们一步步排查解决:

1. 你的程序缺少了核心入口——main()函数

C++程序必须要有一个main()函数作为执行的起点,哪怕你把类的代码写得再完美,没有这个入口函数,编译器虽然能通过(因为类的语法是合法的),但链接生成的可执行文件找不到启动的入口,就会报这个错。

举个例子,正确的程序结构应该是这样的:

#include <iostream>
// 类的定义
class Greeter {
private:
    std::string msg;
public:
    Greeter(std::string s) : msg(s) {}
    void greet() { std::cout << msg << std::endl; }
};

// 必须存在的main入口函数
int main() {
    Greeter hello("Hello from my class!");
    hello.greet();
    return 0;
}

你可以检查下自己的代码,是不是只写了类的定义和成员函数,却忘了加main()来实例化类、执行逻辑?

2. 多文件项目编译时漏加了源文件

如果你的类是拆分到头文件(比如Greeter.h)和源文件(比如Greeter.cpp)里的,那编译的时候必须把所有相关的源文件都包含进来,不然链接阶段会找不到类的实现,也可能间接导致入口点相关的错误。

比如你有两个文件:Greeter.cpp(类的实现)和main.cpp(含main()函数),编译命令应该是:

g++ Greeter.cpp main.cpp -o object.exe

而不是只编译其中一个文件。

3. 试试换用g++命令编译

你当前用的c++命令其实是g++的别名,但有些旧版本的MinGW里,c++命令可能会有一些兼容性问题,换成g++命令试试,效果是完全一样的,但可能更稳定:

g++ object.cpp -o object.exe

另外,也可以检查下MinGW的bin目录是否已经添加到系统环境变量里——如果没添加,执行程序时可能找不到依赖的动态库,不过这种情况一般会报「找不到xxx.dll」,但也可以顺手确认下。

内容的提问来源于stack exchange,提问作者user189636

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:24:14