У меня тоже было несколько проблем (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 ++.Нажмите Apply.
Для компоновщика, в том же окне, Разное, Флаги компоновщика, добавлен флаг
-pthread
.Настройки общей библиотеки, Имя общего объекта, добавьте флаг
-Wl,--no-as-needed
.Нажмите Применить.
Общие сведения о C / C ++ -> Пути и символы -> Выбранные символы TAB, GNU C ++, Добавьте флаг
__GXX_EXPERIMENTAL_CXX0X__
(без значения)
.Нажмите Apply.
C / C ++ General -> Preprocessor Включить пути .. -> вкладка Providers: проверьте
CDT GCC Встроенные настройки компилятора
и для "Command toполучить спецификации компилятора ", добавьте флаг
-std=c++11
.Снимите флажок Поделиться.Нажмите Apply.
CDT Управляет записями настроек сборки, проверьте это тоже.Снимите флажки с двух других.Нажмите Apply.
Возвращаясь к вкладке Entries, GNU C ++ CDT, управляющей записями настроек сборки, вы должны увидеть добавленную запись
__GXX_EXPERIMENTAL_CXX0X__
.
Вот и все.При кодировании ввод
std::
теперь может автоматически завершать, например, класс потока, сборки должны работать нормально, и во время выполнения не должно быть
std::system_error'what(): Enable multithreading to use std::thread: Operation not permitted
.