Вопрос
Этот очень простой код выдает мне массу ошибок:
#include <iostream>
#include <string>
int main() {
std::string test = " ";
std::cout << test;
}
Я попытался скомпилировать его в Linux, набрав gcc -o самый простой simpletest.cpp на консоли.Я не могу понять, почему это не работает.Что происходит?
Решение
Попробуйте использовать «g ++» вместо «gcc».
Другие советы
Чтобы добавить к тому, что сказали другие: 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++
Попробуй:
g++ -o simpletest simpletest.cpp
Попробуйте использовать g ++ -o simpletest simpletest.cpp
.
gcc - это компилятор C, а g ++ - это компилятор C ++, который также связывает необходимые библиотеки C ++.
Кроме того, вам нужно будет добавить return 0;
в конец функции main ()
.
если ваш компилятор требователен, вы можете добавить, что все важные возвращают 0;
в конце там
Вы объявили свой main ()
как возвращающий int
, но у вас нет оператора возврата. Добавьте return 0;
и посмотрите, поможет ли это. Если это не решит вашу проблему, попробуйте отредактировать ваше сообщение, включив в него несколько характерных строк об ошибках, которые вы получили, и, возможно, мы сможем вам помочь лучше.
g ++ тоже был правильным ответом для меня, я проголосовал за него, спасибо.
Но мой код, небольшая частушка, которую я использую с 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
}
У исходного спрашивающего был std::cout и он использовал строку из
<string>...
"простой" - понятие относительное...
Счет