[C++] funkcja main

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
Dominik007
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 26 paź 2010, 16:34
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

[C++] funkcja main

Post autor: Dominik007 »

Witam.
Uczę się C++ z książki Jerzego Grębosza "Symfonia C++ standard". Przygodę z linuxem zacząłem od nie dawna. W książce jest taki prosty program:

Kod: Zaznacz cały

#include <iostream>

int main()



{

	std::cout<<"Stweardzie, ilu leci pasazerów?";

	

	int ile;

	std::cin>>ile;

	

	int i;

	for(i=1;i<=ile; i=i+1)

	{

		std::cout<<"Pasazer nr "<< i <<" prosze zapiac pasy! \n";

	}

	

	std::cout<<"Skoro wszyscy juz zapieli, to ladujemy. ";

}

Ładnie się kompiluje i wyraźnie w kompilatorze Geany pokazuje kompilacja powiodła się, jednak w funkcji wyskakuje main. Próbowałem aby uruchomić program ale nie chce się uruchomić. Wpisywałem:

Kod: Zaznacz cały

 g++ /home/xxx/Katalog/plik_zrodlowy.cpp 
Możecie mi powiedzieć czy gdzieś zrobiłem problem w programie (chociaż wg książki tak właśnie jest), czy jest ok, a po prostu nie umiem uruchomić programu?
Awatar użytkownika
Tares
Sędziwy Jeż
Sędziwy Jeż
Posty: 55
Rejestracja: 05 maja 2006, 19:58
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: Unity
Architektura: x86_64
Kontakt:

Odp: [C++] funkcja main

Post autor: Tares »

spróbuj c++ nazwa_programu -o plik_wyjsciowy

a potem ./plik_wyjsciowy
^_^;
Dominik007
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 26 paź 2010, 16:34
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C++] funkcja main

Post autor: Dominik007 »

Zrobiłem tak jak piszesz czyli w konsoli

Kod: Zaznacz cały

c++ /home/XXX/Katalog/plik_zrodlowy -o plik_wyjsciowy
a potem ./plik_wyjsciowy i wynik to: No such file or directory.

A dokładnie wygląda to tak:

Kod: Zaznacz cały

dominik@DD:~$ c++ /home/XXX/Katalog/plik_zrodlowy -o plik_wyjsciowy
/home/XXX/Katalog/plik_zrodlowy: In function `_start':
(.text+0x0): multiple definition of `_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o:(.text+0x0): first defined here
/home/XXX/Katalog/plik_zrodlowy: In function `_fini':
(.fini+0x0): multiple definition of `_fini'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crti.o:(.fini+0x0): first defined here
/home/XXX/Katalog/plik_zrodlowy:(.rodata+0x0): multiple definition of `_IO_stdin_used'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o:(.rodata.cst4+0x0): first defined here
/home/XXX/Katalog/plik_zrodlowy: In function `__data_start':
(.data+0x0): multiple definition of `__data_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o:(.data+0x0): first defined here
/home/XXX/Katalog/plik_zrodlowy: In function `__data_start':
(.data+0x8): multiple definition of `__dso_handle'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/crtbegin.o:(.data+0x0): first defined here
/home/XXX/Katalog/plik_zrodlowy: In function `_init':
(.init+0x0): multiple definition of `_init'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crti.o:(.init+0x0): first defined here
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/crtend.o:(.dtors+0x0): multiple definition of `__DTOR_END__'
/home/XXX/Katalog/plik_zrodlowy:(.dtors+0x8): first defined here
/usr/bin/ld: warning: Cannot create .eh_frame_hdr section, --eh-frame-hdr ignored.
/usr/bin/ld: error in /home/XXX/Katalog/plik_zrodlowy(.eh_frame); no .eh_frame_hdr table will be created.
collect2: ld returned 1 exit status
dominik@DD:~$ ./plik_wyjsciowy
bash: ./plik_wyjsciowy: No such file or directory
Awatar użytkownika
leon1313
Zakręcona Traszka
Zakręcona Traszka
Posty: 668
Rejestracja: 02 sty 2006, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: KDE Plasma
Architektura: x86

Odp: [C++] funkcja main

Post autor: leon1313 »

daj z opcją -Wall lub -Wextra, zobaczymy co pokaże.
czyli np :

Kod: Zaznacz cały

g++ test6.cpp  -Wall -o test6
"Poza tym dostałeś PLONKa i zabraniam Ci pisać na te grupe!!! Powiedziałem PLONK i sie zamknij i nawet nie knuj rzeby mi odpisywać! Zabraniam!!!"
kampo
Sędziwy Jeż
Sędziwy Jeż
Posty: 81
Rejestracja: 01 gru 2009, 21:52
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: LXDE
Architektura: x86_64
Kontakt:

Odp: [C++] funkcja main

Post autor: kampo »

Zamiast std::cout... na poczatku instrukcji(?) dodaj using namespace std;, czyli:

Kod: Zaznacz cały

#include <iostream>

int main()



{
        using namespace std;

        cout<<"Stweardzie, ilu leci pasazerów?";
...
Wtedy nie będziesz musiał za każdym razem pisać "std::...".
Skompilowalem u siebie i dziala normalnie,ale używam QtCreator.
kampo@tofik ~/projects/Test2 $ ./Test2
Stweardzie, ilu leci pasazerów?4
Pasazer nr 1 prosze zapiac pasy!
Pasazer nr 2 prosze zapiac pasy!
Pasazer nr 3 prosze zapiac pasy!
Pasazer nr 4 prosze zapiac pasy!
Skoro wszyscy juz zapieli, to ladujemy.
kampo@tofik ~/projects/Test2 $ ./Test2
Na koncu linijki "Skoro wszyscy juz zapieli, to ladujemy." dodaj \n przed zamknięciem nawiasu.
Dominik007
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 26 paź 2010, 16:34
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C++] funkcja main

Post autor: Dominik007 »

Gdy wpisuje:

Kod: Zaznacz cały

g++ /home/XXX/Katalog/plik_zrodlowy.cpp -Wall -o plik_zrodlowy
lub

Kod: Zaznacz cały

g++ /home/XXX/Katalog/plik_zrodlowy.cpp -Wall -o plik_wynikowy
Przechodzi mi do następnej linii w konsoli, nic nie wyświetla.
Czy może być tak, że brakuje mi jakichś wtyczek, dodatków do kompilatora?
Ściągałem kompilator z neta nie z menadżera pakietów.

@kempo
Ale ja nie chce dodawać

Kod: Zaznacz cały

using namespace std
chce sprawdzić tak jak działa teraz w książce. Po za tym, że dodam to co mówisz nic mi to nie da prócz tego, że nie będę pisał std i będę je musiał usunąć z każdej linijki. Do tego dojdę przerabiając książkę, na razie nie wiem dlaczego nie mogę uruchomić programu.
Awatar użytkownika
leon1313
Zakręcona Traszka
Zakręcona Traszka
Posty: 668
Rejestracja: 02 sty 2006, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: KDE Plasma
Architektura: x86

Odp: [C++] funkcja main

Post autor: leon1313 »

Jak przechodzi do następnej linii bez alarmów, to znaczy , że skompilowało się bez problemów :-)
"Poza tym dostałeś PLONKa i zabraniam Ci pisać na te grupe!!! Powiedziałem PLONK i sie zamknij i nawet nie knuj rzeby mi odpisywać! Zabraniam!!!"
Dominik007
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 26 paź 2010, 16:34
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C++] funkcja main

Post autor: Dominik007 »

To dobrze ale dlaczego nie wyświetla programu?
Awatar użytkownika
leon1313
Zakręcona Traszka
Zakręcona Traszka
Posty: 668
Rejestracja: 02 sty 2006, 19:35
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: KDE Plasma
Architektura: x86

Odp: [C++] funkcja main

Post autor: leon1313 »

a daj "ls -al" w katalogu, którym jesteś..
"Poza tym dostałeś PLONKa i zabraniam Ci pisać na te grupe!!! Powiedziałem PLONK i sie zamknij i nawet nie knuj rzeby mi odpisywać! Zabraniam!!!"
Dominik007
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 26 paź 2010, 16:34
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C++] funkcja main

Post autor: Dominik007 »

Kod: Zaznacz cały

drwxr-xr-x 37 dominik dominik   4096 2010-11-02 19:27 .
drwxr-xr-x  4 root    root      4096 2010-10-25 17:36 ..
drwx------  3 dominik dominik   4096 2010-10-26 17:28 .adobe
-rwxr-xr-x  1 dominik dominik   9142 2010-11-02 19:27 a.out
-rw-------  1 dominik dominik   3397 2010-11-02 18:29 .bash_history
-rw-r--r--  1 dominik dominik    220 2010-10-25 17:36 .bash_logout
-rw-r--r--  1 dominik dominik   3103 2010-10-25 17:36 .bashrc
drwx------ 10 dominik dominik   4096 2010-11-02 17:56 .cache
drwxr-xr-x 15 dominik dominik   4096 2010-10-27 19:29 .config
drwx------  3 dominik dominik   4096 2010-10-25 17:57 .dbus
-rw-r--r--  1 dominik dominik     41 2010-11-02 17:56 .dmrc
drwxr-xr-x  2 dominik dominik   4096 2010-10-29 13:31 Dokumenty
-rw-------  1 dominik dominik     16 2010-10-25 17:57 .esd_auth
drwxr-xr-x  8 dominik dominik   4096 2010-10-26 16:59 .evolution
-rw-r--r--  1 dominik dominik    179 2010-10-25 17:36 examples.desktop
drwxr-xr-x  2 dominik dominik   4096 2010-10-27 14:14 .fontconfig
drwx------  4 dominik dominik   4096 2010-11-02 17:56 .gconf
drwx------  2 dominik dominik   4096 2010-11-02 18:33 .gconfd
drwxrwxrwx 10 dominik dominik   4096 2010-08-18 19:02 geany-0.19.1
-rw-r-----  1 dominik dominik      0 2010-10-30 19:37 .gksu.lock
drwx------  8 dominik dominik   4096 2010-10-31 22:29 .gnome2
drwx------  2 dominik dominik   4096 2010-10-25 17:58 .gnome2_private
drwx------  2 dominik dominik   4096 2010-10-25 18:03 .gnupg
drwxr-xr-x  2 dominik dominik   4096 2010-10-28 13:46 .gstreamer-0.10
-rw-r--r--  1 dominik dominik    143 2010-11-02 17:56 .gtk-bookmarks
dr-x------  2 dominik dominik      0 2010-11-02 17:56 .gvfs
-rw-------  1 dominik dominik   5134 2010-11-02 17:56 .ICEauthority
drwxr-xr-x  2 dominik dominik   4096 2010-10-25 17:58 .icons
drwx------  4 dominik dominik   4096 2010-10-26 19:03 .kadu
drwx------  3 dominik dominik   4096 2010-10-25 18:07 .local
drwx------  3 dominik dominik   4096 2010-10-26 17:28 .macromedia
drwx------  3 dominik dominik   4096 2010-10-26 16:59 .mission-control
drwx------  4 dominik dominik   4096 2010-10-25 18:12 .mozilla
drwxr-xr-x  2 dominik dominik   4096 2010-10-25 17:57 Muzyka
drwxr-xr-x  2 dominik dominik   4096 2010-10-25 17:57 .nautilus
-rw-r--r--  1 dominik dominik   1201 2010-10-26 17:03 .nvidia-settings-rc
drwxr-xr-x  3 dominik dominik   4096 2010-10-25 18:11 Obrazy
drwxr-xr-x  3 dominik dominik   4096 2010-10-27 16:26 .openoffice.org
-rwxr-xr-x  1 dominik dominik   9142 2010-11-02 19:02 plik_wynikowy
-rwxr-xr-x  1 dominik dominik   9142 2010-11-02 19:27 plik_zrodlowy
-rw-r--r--  1 dominik dominik   7794 2010-10-27 19:37 plik_zrodlowy.cpp
-rw-r--r--  1 dominik dominik   3104 2010-11-02 18:28 plik_zrodlowy.o
drwxr-xr-x  3 dominik dominik   4096 2010-10-28 15:18 Pobrane
-rw-r--r--  1 dominik dominik     37 2010-10-26 17:44 .printer-groups.xml
-rw-r--r--  1 dominik dominik    675 2010-10-25 17:36 .profile
drwxr-xr-x  2 dominik dominik   4096 2010-10-25 17:57 Publiczny
drwxr-xr-x  4 dominik dominik   4096 2010-11-02 19:43 Pulpit
drwx------  2 dominik dominik   4096 2010-11-02 17:56 .pulse
-rw-------  1 dominik dominik    256 2010-10-25 17:57 .pulse-cookie
-rw-------  1 dominik dominik  21140 2010-11-02 19:27 .recently-used.xbel
drwx------  2 dominik dominik   4096 2010-10-25 18:03 .ssh
-rw-r--r--  1 dominik dominik      0 2010-10-25 18:01 .sudo_as_admin_successful
drwxr-xr-x  2 dominik dominik   4096 2010-10-25 17:57 Szablony
drwxr-xr-x  3 dominik dominik   4096 2010-10-26 16:59 .themes
drwx------  5 dominik dominik   4096 2010-10-25 18:11 .thumbnails
drwx------  2 dominik dominik   4096 2010-10-27 14:20 .update-notifier
-rw-r--r--  1 dominik dominik   2972 2010-10-26 17:33 .usbcreator.log
drwxr-xr-x  2 dominik dominik   4096 2010-10-25 17:57 Wideo
-rw-r--r--  1 dominik dominik    559 2010-10-29 19:26 .xscreensaver-getimage.cache
-rw-------  1 dominik dominik 112897 2010-11-02 19:45 .xsession-errors
-rw-------  1 dominik dominik 683661 2010-10-31 22:29 .xsession-errors.old
No i co to daje?

Czy o to chodziło?

Kod: Zaznacz cały

dominik@DD:~$ ls -al /home/XXX/Katalog/plik_zrodlowy.cpp
-rw-r--r-- 1 dominik dominik 296 2010-11-02 18:28 /home/XXX/Katalog/plik_zrodlowy.cpp
Awatar użytkownika
borzole
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 127
Rejestracja: 10 sie 2010, 11:48
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: [C++] funkcja main

Post autor: borzole »

..ehh

Kod: Zaznacz cały

-rwxr-xr-x  1 dominik dominik   9142 2010-11-02 19:27 a.out

Kod: Zaznacz cały

-rwxr-xr-x  1 dominik dominik   9142 2010-11-02 19:02 plik_wynikowy
-rwxr-xr-x  1 dominik dominik   9142 2010-11-02 19:27 plik_zrodlowy
poza tym wystarczyło w Geany nacisnąć F5 po kompilacji
Dominik007
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 26 paź 2010, 16:34
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C++] funkcja main

Post autor: Dominik007 »

Faktycznie działa F5. Sorry nie wiedziałem.

Po za tym? To znaczy co mam z tym zrobić co napisałeś?

Dlaczego w kompilatorze zaznacza mi strzałkę przy funkcji main? Czy to oznacza coś ważne - błąd?
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Odp: [C++] funkcja main

Post autor: beluosus »

Dominik007 pisze:Zrobiłem tak jak piszesz czyli w konsoli

Kod: Zaznacz cały

c++ /home/XXX/Katalog/plik_zrodlowy -o plik_wyjsciowy
a potem ./plik_wyjsciowy i wynik to: No such file or directory.
Dlaczego nikt na to uwagi nie zwraca? Po pierwsze używasz polecenia c++ zamiast g++, po drugie kompilujesz program w konkretnym katalogu, a wykonujesz program z obecnego (CWD) katalogu co jak widać nie pokrywa się.
Dominik007 pisze:Dlaczego w kompilatorze zaznacza mi strzałkę przy funkcji main? Czy to oznacza coś ważne - błąd?
Pewnie dlatego, że main() to funkcja, a funkcje zwracają wynik - na końcu powinieneś zwrócić zero.

Kod: Zaznacz cały

return 0;
PS
Nie w kompilatorze tylko edytorze. Poza tym czytaj warningi/errory.
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
Dominik007
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 26 paź 2010, 16:34
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C++] funkcja main

Post autor: Dominik007 »

Dzięki kolego teraz działa :)
Jest jednak jeden mały problem i tak jest przy funkcji main znacznik, błąd nawet po dodaniu return 0;
Co może być spowodowane?

EDIT:
Może ktoś odpowiedzieć?
Awatar użytkownika
beluosus
Zakręcona Traszka
Zakręcona Traszka
Posty: 695
Rejestracja: 01 paź 2006, 15:32
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: Xfce
Architektura: x86
Kontakt:

Odp: [C++] funkcja main

Post autor: beluosus »

beluosus pisze:Poza tym czytaj warningi/errory.
Bez tych informacji prawdopodobnie nikt Ci nie pomoże.
Kurs Linuksa: for i in $(ls /bin); do man $i; done
__________________
http://beluosus.pl/
Dominik007
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 26 paź 2010, 16:34
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C++] funkcja main

Post autor: Dominik007 »

Ok. Tylko że ja nie widzę tutaj erroru po za żółtą strzałką przy funkcji int main () oraz po lewej "symbole" - "funkcje" - "main [4]".
Awatar użytkownika
borzole
Serdeczny Borsuk
Serdeczny Borsuk
Posty: 127
Rejestracja: 10 sie 2010, 11:48
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Kontakt:

Odp: [C++] funkcja main

Post autor: borzole »

zrób fotkę, bo nie wiadomo o co chodzi
Hakerpawel
Piegowaty Guziec
Piegowaty Guziec
Posty: 1
Rejestracja: 04 wrz 2008, 00:09

Odp: [C++] funkcja main

Post autor: Hakerpawel »

Jakbys uzyl jakiegos IDE bys sie martwil tylko o poprawnosc kodu i programu. Polecam Code::Blocks poczatkujacym i masz 0 problemow z kompilacja :). Jak juz bedziesz Zawodowo programowal to zapewnie bedziesz musial zapoznac sie z Microsoft Visual Studio C++.

Co do twojego problemu zawsze pisz tresc bledu, ulatwia to innym analize tego co u Ciebie nie dziala.
Dominik007
Piegowaty Guziec
Piegowaty Guziec
Posty: 12
Rejestracja: 26 paź 2010, 16:34
Płeć: Mężczyzna
Wersja Ubuntu: 10.04
Środowisko graficzne: GNOME
Architektura: x86

Odp: [C++] funkcja main

Post autor: Dominik007 »

Podaje zdjęcie:
http://zapodaj.net/fe7a672ad001.png.html
O to mi chodzi. Widzicie po lewej stronie w symbolach main i w 4 linijce strzałkę przy main?
malek99
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 07 lis 2009, 13:49
Płeć: Mężczyzna
Wersja Ubuntu: 10.10
Środowisko graficzne: GNOME
Architektura: x86_64

Odp: [C++] funkcja main

Post autor: malek99 »

tak troche abstrahujac od tematu - uzywanie goto jest bardzo niezalecane i bardzo czesto prowadzi do bledow, wobec tego proponuje zebys po skonczeniu case dal break a calosc w jakims while z warunkiem na zakonczenie programu
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 11 gości