Возникли проблемы с началом сборки 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 в качестве режима по умолчанию).

Другие вопросы по тегам