Também tive vários problemas (Ubuntu 13.04 de 64 bits, g ++ - 4.8, eclipse Juno 3.8.1, CDT 6.0.0). Muitas coisas são mencionadas acima, desculpe repeti-las, mas, além disso, tive problemas ao utilizar
std::thread
como parte do c ++ 11 (adicionar -pthread para o vinculador resolve esse problema). Enfim, finalmente essas configurações funcionaram bem:
Projeto -> Propriedades -> Compilação C / C ++ -> Configurações -> Diversos. Adicione o
-std=c++11
sinalizador para os compiladores GCC e G ++. Clique em Aplicar.
Para o vinculador, a mesma janela, Diversos, sinalizadores de vinculador, adicionou o
-pthread
bandeira. Configurações da biblioteca compartilhada, Nome do objeto compartilhado, adicione o
-Wl,--no-as-needed
bandeira também. Clique em Aplicar.
C / C ++ Geral -> Caminhos e símbolos -> Símbolos TAB, GNU C ++ selecionado, Adicionar o
__GXX_EXPERIMENTAL_CXX0X__
(sem valor)
bandeira. Clique em Aplicar.
C / C ++ Geral -> Pré-processador Incluir caminhos .. -> guia Provedores: marque
Configurações do compilador CDT GCC
e para "Comando para obter especificações do compilador", adicione o
-std=c++11
bandeira. Desmarque Compartilhar. Clique em Aplicar.
O CDT gerencia entradas de configuração de compilação, verifique isso também. Desmarque as duas outras. Clique em Aplicar.
Voltando à guia Entradas, o GNU C ++ CDT Gerencia Configurações de Configuração de Entradas, agora você verá as
__GXX_EXPERIMENTAL_CXX0X__
entrada.
É isso aí. Ao codificar, digitar
std::
agora é possível concluir automaticamente a classe de encadeamento, por exemplo, as compilações devem funcionar bem e não deve haver
std::system_error'what(): Enable multithreading to use std::thread: Operation not permitted
em tempo de execução.
std::unique_ptr<char[]>