我正在努力教自己用C ++编程,并在安装了g ++的Windows上使用Cygwin。一切都在游泳,直到我开始声明字符串变量。使用带有cout的字符串文字不会产生任何问题,但只要我声明一个字符串变量,程序将不再运行。
#include <iostream>
#include <string>
int main ()
{
std::string mystring = "Test";
std::cout << mystring;
return 0;
}
前面的代码编译时没有问题,但是在运行时没有产生输出。 GDB为我提供了以下内容:
(gdb) run
Starting program: /cygdrive/c/Projects/CPP Test/string.exe
[New Thread 8416.0x2548]
[New Thread 8416.0x2510]
[New Thread 8416.0x1694]
[New Thread 8416.0x14f4]
[Thread 8416.0x1694 exited with code 3221225785]
[Thread 8416.0x14f4 exited with code 3221225785]
During startup program exited with code 0xc0000139.
从我设法收集到的这是一个DLL的入口点问题,但我可能完全错了。
有谁知道我做错了什么,或者我错误配置了什么以及如何解决它?
答案 0 :(得分:2)
嗯,我不确定问题到底是什么(如果有人知道我会感激不尽!),但我能够通过从GCC 5.2.0降级到GCC 4.9来自行解决。 3。
答案 1 :(得分:0)
在使用Windows 10,mingw编译和gcc-8.1.0混合发行版和调试版本时,我遇到了同样的问题。
我通过清理并重新编译所有内容来解决它:
cd ${MY_BUILD}
make clean
cmake ${MY_SOURCE} -DCMAKE_BUILD_TYPE=Debug
make -j4
gdb ./bin/my_program.exe # -> works
./bin/my_program.exe # -> no more problem