Pergunta

Este código muito simples me dá toneladas de erros:

#include <iostream>
#include <string>

int main() {
    std::string test = " ";
    std::cout << test;
}

Eu tentei compilá-lo no Linux digitando gcc -o simpletest simpletest.cpp no console. Eu não posso ver por que ele não está funcionando. O que está acontecendo?

Foi útil?

Solução

Tente usar 'g ++' em vez de 'gcc'.

Outras dicas

Para acrescentar ao que já foi dito: g++ é o compilador GNU C ++. gcc é o GNU Compiler Collection ( não o compilador GNU C, como muitas pessoas assumem). gcc serve como uma interface para g++ ao compilar fontes de C ++. gcc pode compilar C, C ++, Objective-C, Fortran, Ada, montagem, e outros.

A razão pela qual ele falhar tentando compilar com gcc é que você precisa para link na biblioteca padrão do C ++. Por padrão, g++ faz isso, mas gcc não. Para link na biblioteca C ++ padrão usando gcc, use o seguinte:

gcc -o simpletest simpletest.cpp -lstdc++

Tente:

g++ -o simpletest simpletest.cpp

Tente com g++ -o simpletest simpletest.cpp. gcc é o compilador C, enquanto g ++ é o compilador C ++ que também ligações nas bibliotecas necessárias C ++.

Além disso, você terá que adicionar um return 0; no final da sua função main().

Se o seu compilador é exigente você pode querer acrescentar que todos importantes return 0; no final lá

Você declarou o seu main() como retornando um int ainda você não tem nenhuma instrução de retorno. Adicionar return 0; e ver se isso ajuda. Se isso não resolver seu problema, tente editar o seu post para incluir algumas linhas representativas desses erros seu recebendo e talvez possamos ajudá-lo melhor.

g ++ era a resposta certa para mim também, votei-lo, obrigado.

Mas o meu código, um pouco cantiga que eu tenho usado desde 13 de fevereiro de 1998 (primeiro comentário), para calcular o salário bruto eficaz e retenção para a babá de nosso filho, era muito simples, mesmo para g ++. Em termos do exemplo acima, meu dinossauro Stroustrup de segunda-edição-compliant foi:

// too simple!

#include <iostream.h>
#include <stdlib.h>

main() {
    cout << "Hello World!" << endl;
}

Isto lhe dará uma janela de terminal cheio de mensagens de erro. Tudo, exceto as chaves é um erro! E sua falta uma linha de retorno. Houve um tempo, isso iria compilar e executar corretamente em C ++ comercial ambientes de desenvolvimento ...

Retrocedendo a nova escola, eu estou usando agora: // suficiente apenas simples

#include <iostream>
#include <stdlib.h>

int main(int argc, char* argv[] ) {
    std::cout << "Hello World!" << std::endl;
//  TODO - this ought to return success, 0
}

A pergunta original tinha o std :: cout e cadeia utilizada a partir

 <string>...  

"simples" é um termo relativo ...

Bill

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top