kompilacja w linux

0

Hej. Na lekcji dostalismy zadanie zeby napisac program w c++ pod linuxem i go skompilowac, mamy napisac krok po kroku jak do tego doszlismy. Tutaj chyba chodzi o doinstalowanie jakichs bibliotek, bo w c++ pisalismy juz wczesniej pod windowsem i nie bylo takich problemow.

Mam taki kod:

#include <iostream>
using namespace std;

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

I wyrzuca mi takie bledy:

Description Resource Path Location Type
Symbol 'cout' could not be resolved test.cpp /HelloWorld/src line 13 Semantic Error

Description Resource Path Location Type
Symbol 'endl' could not be resolved test.cpp /HelloWorld/src line 13 Semantic Error

Description Resource Path Location Type
Symbol 'std' could not be resolved test.cpp /HelloWorld/src line 10 Semantic Error

Co powinienem doinstalowac i w jaki sposob ? Mamy to zrobic przy pomocy programu eclipse.

Podczas tworzenia programu wybralem "Linux GCC", a eclipse jakiego sciagnalem to wersja CPP czyli z CDT - http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/junosr1 , ktore jest podobno wymagane do pisania w C++. Prosze o pomoc...

Dzieki za pomoc!

0

Nie wiem po co kombinować z eclipse. Sądząc po kodzie IDE nie jest wam potrzebne. Odpal dowolny terminal-emulator i kompiluj ręcznie np.

$ g++ hello.cpp -o hello
$ ./hello
Hello World!

Wtedy dowiesz się czy to błędy Eclipse'a czy GCC. Chociaż stawiam, że na 99% to właśnie eclipse w tym wypadku ma jakiś problem.

pozdrawiam.

0

GCC to kompilator C, a ty masz przecież kod w C++, szukaj projektu wykorzystującego właśnie g++ ew z c++ w nazwie
Mi gcc wyrzucił taką kolekcję błędów

/tmp/cc9jRBp1.o: In function `main':
main.cpp:(.text+0xa): undefined reference to `std::cout'
main.cpp:(.text+0xf): 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*)'
main.cpp:(.text+0x14): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
main.cpp:(.text+0x1c): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
/tmp/cc9jRBp1.o: In function `__static_initialization_and_destruction_0(int, int)':
main.cpp:(.text+0x4a): undefined reference to `std::ios_base::Init::Init()'
main.cpp:(.text+0x59): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status

Natomiast G++ ładnie kompiluje bez błędów

0

@sig bzdury gadasz. GCC to Gnu Compiler Collection czyli cała paczka kompilatorów. Ale jeśli nie używasz bezpośrednio g++ to musisz podać parametr -lstdc++ żeby kompilator wiedział żeby linkować z biblioteką c++

1 użytkowników online, w tym zalogowanych: 0, gości: 1