2008-11-05 2 views
2

Это очень простой код дает мне тонны ошибок:Простой C++ код не работает

#include <iostream> 
#include <string> 

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

Я попытался скомпилировать его на Linux, введя Gcc -o SimpleTest simpletest.cpp на консоли. Я не понимаю, почему он не работает. Что происходит?

ответ

9

Попробуйте использовать 'g ++' вместо 'gcc'.

+0

И добавить возврат 0; как заметил г-н. – grieve 2008-11-05 22:51:56

+0

все. такая глупая ошибка! спасибо – 2008-11-05 22:55:15

0

Вы указали свой main() как возвращающий int, но у вас нет оператора возврата. Добавьте return 0; и посмотрите, поможет ли это. Если это не решит вашу проблему, попробуйте отредактировать сообщение, чтобы включить некоторые типичные строки из тех ошибок, которые вы получаете, и, возможно, мы сможем вам помочь.

+0

проблема была в том, что я использовал неправильный компилятор ... глупо меня хотя я вижу, что отсутствующий оператор возврата, даже если он не выдавал никаких предупреждений или ошибок, должен быть плохой практикой. Спасибо – 2008-11-05 22:54:36

+0

на самом деле, C++ имеет специальную концессию, которая позволяет main не иметь оператор return даже с объявлением, возвращающим int. в этом случае он будет неявно возвращать правильное значение успеха, обычно 0. – 2008-11-05 22:54:45

+0

@Evan: интересно ... Я использовал для объявления моего main() как пустое, поэтому мне не нужно что-то возвращать, когда я использовал компиляторы, которые поддерживали Это. G ++ это не нравится, поэтому я должен сделать это int и return 0. – rmeador 2008-11-05 23:14:13

5

Попробуйте с g++ -o simpletest simpletest.cpp. gcc является компилятором C, а g ++ - компилятором C++, который также связывается в необходимых библиотеках C++.

Кроме того, вам необходимо добавить return 0; в конце вашей функции main().

2

если ваш компилятор придирчив вы можете добавить, что все важные return 0; в конце концов там

8

Чтобы добавить к тому, что другие сказали: g++ является ++ компилятор GNU C. gcc - сборник компилятора GNU (не компилятор GNU C, как полагают многие). gcc служит в качестве интерфейса для g++ при компиляции источников C++. gcc может скомпилировать C, C++, Objective-C, Fortran, Ada, сборку и другие.

Причина, по которой она не пытается скомпилировать с помощью gcc, заключается в том, что вам необходимо установить ссылку в стандартной библиотеке C++. По умолчанию g++ делает это, но gcc нет. Для того, чтобы связать в стандартной библиотеке C++ с использованием gcc, используйте следующее:

gcc -o simpletest simpletest.cpp -lstdc++
0

г ++ был правильный ответ для меня тоже, я голосовал его, спасибо.

Но мой код, небольшая мелочь, которую я использовал с 13 февраля 1998 года (первый комментарий), чтобы рассчитать эффективную валовую оплату и удержание для няни нашего ребенка, было слишком простым даже для g ++. С точки зрения приведенного выше примера, мой Страуструп-вторых, издание-совместимый динозавр пошел:

// too simple! 

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

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

Это даст вам полный терминальное окно сообщений об ошибках. Все, кроме фигурных скобок, является ошибкой! И его отсутствует линия возврата. Время было, это будет компилироваться и работать правильно в коммерческих средах разработки C++ ...

Ноги это новая школа, я теперь с помощью: // просто достаточно простого

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

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

Оригинальных спрашивающего имел зЬй :: COUT и используются строку из

<string>... 

" простой "является относительным термином ...

Bill

Смежные вопросы