Вопрос

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

#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>...  

"простой" - понятие относительное...

Счет

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top