C++ Cygwin工作时,使用MinGW编译会崩溃

C++ Cygwin工作时,使用MinGW编译会崩溃,c++,cygwin,mingw,ncurses,curses,C++,Cygwin,Mingw,Ncurses,Curses,我正在编写一个简单的roguelike,我是静态编译来测试的,但我发现程序a)在输入时崩溃,b)在使用MinGW编译时似乎根本没有随机性。我切换到Cygwin进行检查,发现使用Cygwin的静态编译版本的性能完全符合预期。我对两个源文件都使用了相同的命令:g++-c FILE\u NAME-std=c++14-lncurses,然后g++-static-o dngn OBJECTS-std=c++14-lncurses链接最终构建 MinGW构建: Cygwin版本: 这两张图片都是用各自的

我正在编写一个简单的roguelike,我是静态编译来测试的,但我发现程序a)在输入时崩溃,b)在使用MinGW编译时似乎根本没有随机性。我切换到Cygwin进行检查,发现使用Cygwin的静态编译版本的性能完全符合预期。我对两个源文件都使用了相同的命令:
g++-c FILE\u NAME-std=c++14-lncurses
,然后
g++-static-o dngn OBJECTS-std=c++14-lncurses
链接最终构建

MinGW构建:

Cygwin版本:


这两张图片都是用各自的编译器运行的截屏,他们说一张图片值千言万语,但它不能代替你的实际代码。花点时间,把一个能说明问题的例子放在一起。它通常是一些简单的东西,比如一个未初始化的变量,您可以在试图找到问题点时找到它。你也可以考虑使用一个调试器,它能准确地告诉你崩溃的原因,并允许你检查崩溃时发生了什么。问题是,同样的代码在Ubuntu和CygWin上运行得很好,而不是在MIWW上。我甚至不知道如何开始减少它。是否只有在MinGW中才存在导致header/segfaults缺陷的常见问题?是的,未定义的行为或实现定义的行为的差异。调试器是最好的选择。不幸的是,当我运行
gdb
时,即使在
main
的开头有一个断点,它也会在mingw.png中显示相同的屏幕并冻结。如果没有代码,这是无法合理回答的。因此,请再次提供。如果你的代码太大,你应该减少它,直到它包含唯一必要的行来重现你的问题。关于这一点,值得一读。