Возникли проблемы с началом сборки ISOCPP.net C++ для Windows (nuwen)
У меня есть минимальный MinGW (nuwen), настроенный с isocpp.org "Начало работы", которая является gcc версии 6.1.0, скомпилированной для Windows
это мой код
#include <stdio.h>
#include <string>
int main (int argc, char* argv[]) {
printf ("hello world\n");
std::string mystring {"my string"};
}
Я продолжаю получать следующую ошибку (среди прочих)
C: \ util \ MinGW \ proj> gcc main.cpp
C: \ Users \ gmyer \ AppData \ Local \ Temp \ ccXSjGdh.o: main.cpp:(. Text+0x2e): неопределенная ссылка на `std::allocator::allocator()' collect2.exe: ошибка: возвращен ld 1 статус выхода
Что я сделал
- проверил, что строковый файл существует в каталоге include CPLUS_INCLUDE_PATH=C:\util\MinGW\include;C:\util\MinGW\include\freetype2 C_INCLUDE_PATH=C:\util\MinGW\include;C:\util\MinGW\include\freetype2
- проверил, что распределитель существует в файле 'string'
Нужно ли добавить еще один включаемый файл, чтобы он работал?
1 ответ
Вы должны скомпилировать код с g++
(см. Компиляция программы на C++ с помощью gcc).
Также используйте --std=c++11
переключатель (g++ --std=c++11
) или изменить
std::string mystring {"my string"};
в
std::string mystring = "my string";
( равномерная инициализация является функцией C++11, а Nuwen MinGW Distro v 14.0 использует C++03 в качестве режима по умолчанию).