c++;windows上的程序(g+;+;)。main()不启动 我有一个C++项目,它由一个主函数和一个类声明组成。 我正在使用mingwg++编译我的代码
问题是,即使编译和链接很好,在启动程序时,进程也会冻结,并且什么也没有显示 这基本上就是main.cpp文件:c++;windows上的程序(g+;+;)。main()不启动 我有一个C++项目,它由一个主函数和一个类声明组成。 我正在使用mingwg++编译我的代码,c++,windows,mingw,freeze,C++,Windows,Mingw,Freeze,问题是,即使编译和链接很好,在启动程序时,进程也会冻结,并且什么也没有显示 这基本上就是main.cpp文件: int main() { printf("....\n"); system("PAUSE"); //Class instance; return 1; } .... class Class {...} .... 我对类实例化进行了注释以隔离问题 在main函数之后是类声明 要清楚的是,当从控制台运行它时,它会冻结并且不显示printf字符串 如果它有用
int main() {
printf("....\n");
system("PAUSE");
//Class instance;
return 1;
}
....
class Class {...}
....
我对类实例化进行了注释以隔离问题
在main函数之后是类声明
要清楚的是,当从控制台运行它时,它会冻结并且不显示printf字符串
如果它有用的话,我还将链接在类方法中使用的sfml库
我怎样才能解决这个问题?谢谢。尝试将类声明置于主函数之上 C++要求在使用之前声明或定义任何内容。我所知道的唯一例外是经典:
int main void()
{
//some code that does stuff;
return 0;
}
无论出于何种目的,在使用前都不能在代码中声明。因为这显然不是编译/链接问题,所以与声明的顺序无关。可能有很多事情。在没有看到类的定义的情况下,我们不知道它是否包含静态的用户定义类型成员,这些成员在CRT初始化期间调用了构造函数逻辑。它也可以是你的图书馆。如果已加载动态库(在*nix下为共享对象,或在Windows下为DLL),则进程加载器可能无法找到和/或加载它们,或解析依赖项。SFML是动态的吗?解决此问题的最佳方法是使用调试器。为自己准备一个IDE,并尝试在调试器中运行程序的调试版本。sry我写了一个不好的东西。。。声明包含在主函数的上方。所以这不是问题所在。您可以向我们展示您的代码以获得更多帮助吗?问题不在于你的程序,而在于类本身。我发现g++编译得很好,甚至有些函数只在linux上可用。。。这很奇怪,他应该有爆炸和错误。。。这就是问题所在吗?