Ĺadny brzuch
na moim nowo wgranym linuxie slackware mam takie narzedzie do programowania zwane : KD Develop c/C++ napisalem sobie programik w C++ tak dla testu oraz wgralem plik do katalogu root o naziwe robert.cpp, nastepnie odpalilem terminal i chcialem uruchmic progrsm wiec wpisalem gcc robert.cpp, jednak ku mojemu zdziwniu otrzymalem mase bledow... Czy ktos wie o co chodzi?
kod:
#include <iostream> int main() { std::cout<<"czesc"; }
ponizej bledy:
root@darkstar:~# gcc robert.cpp robert.cpp:8:2: warning: no newline at end of file /tmp/ccz161Lh.o(.text+0xd): In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': : undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const' /tmp/ccz161Lh.o(.text+0x60): In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': : undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const' /tmp/ccz161Lh.o(.text+0x9d): In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': : undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const' /tmp/ccz161Lh.o(.text+0xc8): In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': : undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const' /tmp/ccz161Lh.o(.text+0x129): In function `main': : undefined reference to `std::cout' /tmp/ccz161Lh.o(.text+0x12e): In function `main': : 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*)' /tmp/ccz161Lh.o(.text+0x15a): In function `__static_initialization_and_destruction_0(int, int)': : undefined reference to `std::ios_base::Init::Init()' /tmp/ccz161Lh.o(.text+0x189): In function `__tcf_0': : undefined reference to `std::ios_base::Init::~Init()' /tmp/ccz161Lh.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status root@darkstar:~#
root@darkstar:~#
Lol, działa spod roota.
Wpisz g++ robert.cpp
ok chyba dziala, ale...
nie pokazuje mi wyniku.. jak skompilowac to ? Bo chyba wywolanie g++ nazwa to wykonuje plik, a jak go skompilowac bo gdy wpisalem:
#include <iostream> using namespace std; int main() { cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; system("PAUSE"); }
to pokazalo mi po wpisaniuw terminalu :
root@darkstar:~# g++ robert.cpp root@darkstar:~#
przeskoczylo mi tylko o jedna linie.. ;/
Czyli wszystko się poprawnie skompilowało :P.
pewnie: ./a.out
Używaj parametru "-o nazwa" i określaj nazwę pliku wyjściowego.
P.S. Wywołanie jakie zrobiłeś skompilowało plik. Poczytaj na wiki co znaczy co ;]
@Down: True, poprawiłem :). Tak to jest ja się na szybko piszę ;).
Użytkownik Ali240 edytował ten post 25 czerwiec 2007, 14:42
man g++
man gcc
PS. takich rzeczy nie robi się z poziomu roota
Ali: chyba wyjściowego ;)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
kod:
#include <iostream> int main() { std::cout<<"czesc"; }
ponizej bledy:
root@darkstar:~# gcc robert.cpp robert.cpp:8:2: warning: no newline at end of file /tmp/ccz161Lh.o(.text+0xd): In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': : undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::size() const' /tmp/ccz161Lh.o(.text+0x60): In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': : undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const' /tmp/ccz161Lh.o(.text+0x9d): In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': : undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const' /tmp/ccz161Lh.o(.text+0xc8): In function `std::__verify_grouping(char const*, unsigned int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)': : undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator[](unsigned int) const' /tmp/ccz161Lh.o(.text+0x129): In function `main': : undefined reference to `std::cout' /tmp/ccz161Lh.o(.text+0x12e): In function `main': : 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*)' /tmp/ccz161Lh.o(.text+0x15a): In function `__static_initialization_and_destruction_0(int, int)': : undefined reference to `std::ios_base::Init::Init()' /tmp/ccz161Lh.o(.text+0x189): In function `__tcf_0': : undefined reference to `std::ios_base::Init::~Init()' /tmp/ccz161Lh.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' collect2: ld returned 1 exit status root@darkstar:~#
root@darkstar:~#
Lol, działa spod roota.
Wpisz g++ robert.cpp
ok chyba dziala, ale...
nie pokazuje mi wyniku.. jak skompilowac to ? Bo chyba wywolanie g++ nazwa to wykonuje plik, a jak go skompilowac bo gdy wpisalem:
#include <iostream> using namespace std; int main() { cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; cout<<"dxawdaqgtrgtrrrhggggggggggtttthrthtrh"; system("PAUSE"); }
to pokazalo mi po wpisaniuw terminalu :
root@darkstar:~# g++ robert.cpp root@darkstar:~#
przeskoczylo mi tylko o jedna linie.. ;/
Czyli wszystko się poprawnie skompilowało :P.
pewnie: ./a.out
Używaj parametru "-o nazwa" i określaj nazwę pliku wyjściowego.
P.S. Wywołanie jakie zrobiłeś skompilowało plik. Poczytaj na wiki co znaczy co ;]
@Down: True, poprawiłem :). Tak to jest ja się na szybko piszę ;).
Użytkownik Ali240 edytował ten post 25 czerwiec 2007, 14:42
man g++
man gcc
PS. takich rzeczy nie robi się z poziomu roota
Ali: chyba wyjściowego ;)