У меня есть простая программа, написанная на C ++, на компьютере с Windows 10, скомпилированная с помощью компилятора MinGW g ++.
Я включаю заголовок <string>
, и он работает нормально. Когда я включаю тип данных string
, он компилируется, но не запускается.
Минимальный объем кода для воспроизведения:
#include <iostream>
#include <string>
using namespace std;
int main() {
string greeting;
cout << "hi" << endl;
return 1;
}
Обратите внимание, это отлично работает:
#include <iostream>
#include <string>
using namespace std;
int main() {
//string greeting;
cout << "hi" << endl;
return 1;
}
Версия компилятора - 6.3.0
g++.exe (MinGW.org GCC-6.3.0-1) 6.3.0
Я скачал его 3 дня назад, поэтому я предполагаю, что это самая последняя версия. (Может и нет?)
Я гуглил и просматривал stackoverflow для ответов.
Ближайший вопрос, который я смог найти, человек сдался и сменил операционные системы.
Еще одним решением, которое я нашел, было использование компилятора Cygwin. Я бы предпочел не делать этого, так как у меня уже есть отличный компилятор. Кажется, что инструменты MinGW достаточно широко используются, чтобы я мог использовать компилятор.
У любых других ресурсов форума / блога / и т.д. есть проблемы с преобразованием строк или вызовом строковых методов.
ПРИМЕЧАНИЕ: Тот же самый точный код прекрасно работает на Ubuntu 16.04 с включенным компилятором.
редактирует:
Хотя я понимаю, что «это не работает» не помогает, я не знаю, как еще это описать. Я запускаю скомпилированную программу, и она ведет себя так же, как если бы я ввел echo ''
. Нет выходных данных, нет признаков того, что что-то произошло. Какой способ выражения этого поведения наиболее полезен?
Если я использую отладчик, я получаю program exited with code 0xc0000139
Быстрый поиск в Google возвращает результаты, показывающие, что является проблемой с компилятором. То же, что и комментарии ниже о моей версии компилятора ...
Для компиляции программы я запускаю g++ main.cpp -o b.exe
Чтобы выполнить его, я запускаю ./b.exe