simples código C ++ não funciona
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?
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