我有一个由main()函数和类声明组成的c ++项目。 我正在使用gingw g ++编译我的代码。
问题是,即使编译和链接良好,当启动程序时,进程冻结并不显示任何内容。
这基本上是main.cpp文件:
int main() { printf("....n"); system("PAUSE"); //Class instance; return 1; } .... class Class {...} ....
我评论了类实例化以隔离问题。
C#语言:如何冻结窗体中的ListView控件?
在Windows服务中WCF服务操作冻结
Windows 95/98与Windows 2000,XP +鼠标冻结
Python 2.7 Cx_Freeze:ImportError:没有名为__startup__的模块
检测终止挂起的应用程序
在主函数之后有类的声明。
要清楚的是,从控制台运行时,它会冻结,并不会显示printfstring。
如果它可以是有用的我也链接sfml库,这是在类方法中使用。
我该如何解决这个问题? 谢谢。
在VB.NET中故意冻结一个应用程序
使用cx_Freeze冻结Python应用程序启动非常缓慢
python3 / Gtk3应用程序冻结在Windows 8上
Python CPU使用率下降到0%,在脚本执行过程中击键后恢复
使用libcurl C / C ++下载时冻结
尝试把你的类声明放在主函数之上。
C ++要求在使用之前声明或定义任何东西。 我知道的唯一的例外是经典:
int main void() { //some code that does stuff; return 0; }
对于所有密集目的而言,在使用前不能在代码中声明。
由于这显然不是编译/链接问题,所以与声明的排序无关。 这可能是一些事情。 没有看到Class的定义,我们不知道它是否包含静态的用户定义类型成员,在CRT初始化期间调用构造函数逻辑。 它也可能是你的图书馆。 如果加载了动态库(* nix下的共享对象或Windows下的DLL),则进程加载器可能无法找到和/或加载它们,或者解析依赖关系。 SFML是动态的吗? 排除故障的最佳方法是在调试器中。 得到一个IDE,并尝试在调试器中运行程序的调试版本。