paulenot
@paulenot
IT Issue

Что не так с компиляцией в linux?

Хочу научится писать на C++, но с первой же компиляции возникает масса непонятных проблем. В плоть до того, что удалил все и скопировать Hello World с w3schools. Но тут те-же проблемы.

Вот исходник:
#include <iostream>
using namespace std;

int main() {
  cout << "Hello World!";
  return 0;
}


Вот скрипт билдера:
#!/usr/bin/bash
gcc main.cpp -o main
chmod 777 -R ./main
./main


И наконец тонна ошибок в терминале:
/usr/bin/ld: /tmp/cc4X6rkd.o: in function `main':
main.cpp:(.text+0x12): undefined reference to `std::cout'
/usr/bin/ld: main.cpp:(.text+0x17): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/usr/bin/ld: /tmp/cc4X6rkd.o: in function `__static_initialization_and_destruction_0(int, int)':
main.cpp:(.text+0x4b): undefined reference to `std::ios_base::Init::Init()'
/usr/bin/ld: main.cpp:(.text+0x60): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status
./build.sh: line 4: ./main: No such file or directory


Подскажите, что не так? Может это знак, и нужно выкинуть комп в окно?
  • Вопрос задан
  • 222 просмотра
Решения вопроса 1
kotomyava
@kotomyava
Системный администратор
Надо использовать g++ или gcc -lstdc++.

Но комп в окно, тоже богатая идея. =)

P.S. Также в chmod не нужен ключик -R, да и 777 излишне, u+x достаточно.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы