У меня тоже было несколько проблем (Ubuntu 13.04 64-bit, g ++ - 4.8, eclipse Juno 3.8.1, CDT 6.0.0). Многое упомянуто выше, извините, чтобы повторить это, но кроме того у меня были проблемы с использованием
std::thread
как часть c ++ 11 (добавление -pthread для компоновщика решает эту проблему). Во всяком случае, наконец, эти настройки работали нормально:
Проект -> Свойства -> Сборка C / C ++ -> Настройки -> Разное. Добавить
-std=c++11
флаг для компиляторов GCC и G ++. Нажмите Применить.
Для компоновщика того же окна, Разное, Флаги компоновщика, добавлено
-pthread
флаг. Настройки общей библиотеки, Имя общего объекта, добавьте
-Wl,--no-as-needed
флаг тоже. Нажмите Применить.
C / C ++ Общие -> Пути и символы -> Символы TAB, GNU C ++ выбран, Добавить
__GXX_EXPERIMENTAL_CXX0X__
(неважно)
флаг. Нажмите Применить.
C / C ++ Общие -> Препроцессор Включить пути .. -> Вкладка Провайдеры: проверка
CDT GCC встроенные настройки компилятора
и для «Команда, чтобы получить спецификации компилятора», добавьте
-std=c++11
флаг. Снимите флажок Поделиться. Нажмите Применить.
CDT управляет записями настроек сборки, проверьте это тоже. Снимите флажки с двух других. Нажмите Применить.
Возвращаясь к вкладке «Записи», GNU C ++ CDT, управляет настройками сборки, вы должны увидеть добавленные
__GXX_EXPERIMENTAL_CXX0X__
запись.
Вот и все. При кодировании печатать
std::
может теперь автоматически завершать класс потока, например, сборки должны работать нормально и не должно быть
std::system_error'what(): Enable multithreading to use std::thread: Operation not permitted
во время выполнения.
std::unique_ptr<char[]>