kompilacja w linux

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:

Kopiuj
#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!

davemajster
  • Rejestracja:około 12 lat
  • Ostatnio:ponad 11 lat
  • Postów:18
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.

Kopiuj
$ 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.


itmajster.net "My /dev/null is full in 95% ?!" "unzip; strip; touch; finger; mount; fsck; more; yes; unmount; sleep" - my daily unix command list
SI
  • Rejestracja:prawie 14 lat
  • Ostatnio:około 9 godzin
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

Kopiuj
/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

edytowany 1x, ostatnio: sig
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
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++


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
SI
u mnie gcc nie zna takiego parametru
Shalom
Wiem, właśnie poprawiłem, zaćpałem lekko ;)
SI
Teraz działa, pytanie tylko czy eclipse go dodał. Nie mam i nie zamierzam mieć javy więc tamtejszych projektów nie przejrzę.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.