Programowanie w linuksie

Jeśli już na pewno nie da się umieścić posta wyżej.
Awatar użytkownika
goomior
Przyjaciel
Przyjaciel
Posty: 44
Rejestracja: 04 sie 2005, 12:02
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64

Post autor: goomior »

mareczek-1, tak chyba nie zadziała nawet w C ;) Co do różnic w składni, to przytoczony przez Ciebie program można potraktować kompilatorem C++ i, po poprawieniu błędów, zadziała :P Pod względem składni język C++ bardzo niewiele różni się od C i można stosować np. printf() i scanf() w języku C++.
Pozdrawiam.
Krzysztof Wyszyński
mareczek-1
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 20 wrz 2006, 16:21
Płeć: Mężczyzna
Wersja Ubuntu: 7.04
Środowisko graficzne: GNOME
Kontakt:

Post autor: mareczek-1 »

No właśnie zadziała (oczywiście trzeba jeszcze zadeklarowac "d", ale to błąd przy przepisywaniu ;), tyle że np. w TurboC... A chodzi mi dokładnie o to, jak działa tutaj sqrt? Bo mi wywala błędy w gcc:

undefined reference to `sqrt`
Awatar użytkownika
goomior
Przyjaciel
Przyjaciel
Posty: 44
Rejestracja: 04 sie 2005, 12:02
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64

Post autor: goomior »

W kompilatorze gcc nieco inaczej niż w g++ pracuje linker. Kompilując program wywołaj kompilator w następujący sposób:

Kod: Zaznacz cały

gcc foo.c -o foo -lm
gdzie foo to oczywiście nazwa programu.
Pozdrawiam.
Krzysztof Wyszyński
mareczek-1
Piegowaty Guziec
Piegowaty Guziec
Posty: 8
Rejestracja: 20 wrz 2006, 16:21
Płeć: Mężczyzna
Wersja Ubuntu: 7.04
Środowisko graficzne: GNOME
Kontakt:

Post autor: mareczek-1 »

OK. Teraz działa przynajmniej sqrt(), innych nie próbowałem. Wielkie dzięki. A możesz jeszcze wyjaśnić na czym polega różnica między:
gcc foo.c -o foo -lm, a samym
gcc foo.c -o foo ?
Dzięki jeszcze raz. Jak będę miał więcej pytań to się zgłoszę ;)
P.S.
Nie wiesz czy tu działa clrscr()?
Awatar użytkownika
goomior
Przyjaciel
Przyjaciel
Posty: 44
Rejestracja: 04 sie 2005, 12:02
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: Unity
Architektura: x86_64

Post autor: goomior »

mareczek-1, chodzi o to, że gcc nie linkuje domyślnie, jak to ma miejsce np. w g++, biblioteki matematycznej, więc musisz ją sam dołączyć. Inaczej sprawa wygląda w przypadku biblioteki standardowej libc.a, która jest dołączana domyślnie i nie musimy przy kompilacji dopisywać przełącznika -lc. Nie ma czegoś takiego jak clrscr(). Niemniej jednak można to obejść wywałując funkcję systemową clear, co i tak mija się z celem. Pracując w konsoli czyszczenie ekranu przed uruchomieniem moim zdaniem jest zbędne.
Pozdrawiam.
Krzysztof Wyszyński
Czekista
Piegowaty Guziec
Piegowaty Guziec
Posty: 1
Rejestracja: 09 gru 2006, 13:45

Post autor: Czekista »

Jezli chodzi o podrecznik do c++ pisany pod katem linucha (gcc) i do tego po polsku to goraco polecam to: http://ithelpdesk.pl/kurs-programowania-cplusplus.html

Z Qt jest juz troche gorzej, bo bez znajomosci angielskiego sie nie obejdzie. Oprocz przewodnikow na stronie trolltecha jest calkiem obszerny podrecznik w ktorym tworzenie progsow na tym tooklicie jest wyjasnione od podstaw, autorzy jednak zakladjaja ze znasz c++. Wersje podrecznika dla qt3 mozna pobrac za darmo, jest chyba na stronce trolltecha (googluj "C++ GUI Programming with Qt, Blanchette". Za najnowsze wydanie, zaktualizowane do qt4, trzeba niestety zaplacic lub <cenzura>.

Odnosnie conio.h, to wiekszosc jego funkcji mozna zastpic ncurses, jest nawet projekt na sourceforge ktory ma na celu stworzenie linuksowej implementacji conio.h w oparciu o ncurses, na dodatek autorswa naszego rodaka ;)
majorek
Piegowaty Guziec
Piegowaty Guziec
Posty: 21
Rejestracja: 28 sie 2006, 22:31
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME

Post autor: majorek »

A jeśli chodzi o programowanie w IDE ? Próbowałem programować w GTK według tego poradnika ale zawsze wychodzą jakieś błędy, robie identycznie tak jak w poradniku
WhiteLightning
Piegowaty Guziec
Piegowaty Guziec
Posty: 4
Rejestracja: 06 lip 2006, 23:47
Płeć: Mężczyzna
Wersja Ubuntu: 7.10

Post autor: WhiteLightning »

A moze zainteresuj sie biblioteka wxWidgets? http://www.wxwidgets.org/ fajna sprawa jak chodzi o robienie GUI, plusem jesty przenosnosc miedzy systemami, a jesli chodzi o wyrazenia matematyczne i tego typu sprawy to polecam boosta http://www.boost.org/ zwlaszcza ze ostatnio robi sie calkiem popularny przy ogloszeniach o prace.
Hell is worth all that...
del

Post autor: del »

poza tym, apt-cache search gtk-dev, ubuntu to nie slakłer ze ma wszystkie pliki nagłówkowe na starcie.

Zdrówka życze.
majorek
Piegowaty Guziec
Piegowaty Guziec
Posty: 21
Rejestracja: 28 sie 2006, 22:31
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME

Post autor: majorek »

WhiteLightning pisze: polecam boosta http://www.boost.org/ zwlaszcza ze ostatnio robi sie calkiem popularny przy ogloszeniach o prace.
Ogłoszenia o prace ??? Ja mam dopiero 15 lat :P
Pakos
Sędziwy Jeż
Sędziwy Jeż
Posty: 83
Rejestracja: 26 sie 2005, 08:06
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86_64
Lokalizacja: Łazy
Kontakt:

Post autor: Pakos »

mam kilka pdf (książek jak pasja c++, thinking in c++) po polsku, moge zapodać jesli cie to interesuje
http://pakos.biz | http://polishteam.com.pl
Awatar użytkownika
el.pescado
Zakręcona Traszka
Zakręcona Traszka
Posty: 734
Rejestracja: 26 maja 2005, 11:43
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Post autor: el.pescado »

"Thinking in C++" Bruce'a Eckel'a jest dostępny w sieci za darmo.
majorek
Piegowaty Guziec
Piegowaty Guziec
Posty: 21
Rejestracja: 28 sie 2006, 22:31
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME

Post autor: majorek »

el.pescado pisze:"Thinking in C++" Bruce'a Eckel'a jest dostępny w sieci za darmo.
Jest dostępny ale chyba tylko po angielsku, przynajmniej ja po polsku nie znalazłem :neutral:
stefekxxl
Piegowaty Guziec
Piegowaty Guziec
Posty: 6
Rejestracja: 06 sty 2007, 18:45
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: GNOME

Post autor: stefekxxl »

witam, potrzebuje kompilatora jezyka C. czy w ubuntu (po instalacji) jest juz cos takiego?
ply
Piegowaty Guziec
Piegowaty Guziec
Posty: 2
Rejestracja: 01 wrz 2006, 19:09
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Post autor: ply »

Nie ma.
Jego nazwa to gcc.

Najlepiej od razu wydaj polecenie sudo apt-get install build-essential
Zostaję na Archu.
stefekxxl
Piegowaty Guziec
Piegowaty Guziec
Posty: 6
Rejestracja: 06 sty 2007, 18:45
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: GNOME

Post autor: stefekxxl »

ply pisze:Nie ma.
Jego nazwa to gcc.

Najlepiej od razu wydaj polecenie sudo apt-get install build-essential
wpisalem i oto co zobaczylem

Kod: Zaznacz cały

root@ubuntu:~# sudo apt-get install build-essential
Czytanie list pakietów... Gotowe
Budowanie drzewa zależności       
Reading state information... Gotowe
build-essential jest już w najnowszej wersji.
Następujące pakiety zostały zainstalowane automatycznie i nie są już potrzebne:
  python-alsaaudio xchat-gnome-common freebirth-data libkipi0 libwxgtk2.4-1
  libkjsembed1 libflac++5c2 fftw3 python-pygame libjack0.100.0-0 libqt4-qt3support
  libqt4-core libsqlite0 unrar-free cfv libqt4-gui libkonq4 libfltk1.1
  libsdl-ttf2.0-0 libmxml1 libsamplerate0 libqt4-sql libfluidsynth1 libsdl-mixer1.2
  kompare ladcca2 libsdl-image1.2 libsmpeg0
Użyj 'apt-get autoremove' aby je usunąć.
0 aktualizowanych, 0 nowo instalowanych, 0 usuwanych i 0 nieaktualizowanych.
tzn ze musialem juz wczesniej to wpisac, czy nie jest to jednak konieczne?

Kod: Zaznacz cały

root@ubuntu:~# gcc
gcc: no input files
chyba wszystko jest ok?

Kod: Zaznacz cały

root@ubuntu:~# gcc --help
Usage: gcc [options] file...
Options:
  -pass-exit-codes         Exit with highest error code from a phase
  --help                   Display this information
  --target-help            Display target specific command line options
  (Use '-v --help' to display command line options of sub-processes)
  -dumpspecs               Display all of the built in spec strings
  -dumpversion             Display the version of the compiler
  -dumpmachine             Display the compiler's target processor
  -print-search-dirs       Display the directories in the compiler's search path
  -print-libgcc-file-name  Display the name of the compiler's companion library
  -print-file-name=<lib>   Display the full path to library <lib>
  -print-prog-name=<prog>  Display the full path to compiler component <prog>
  -print-multi-directory   Display the root directory for versions of libgcc
  -print-multi-lib         Display the mapping between command line options and
                           multiple library search directories
  -print-multi-os-directory Display the relative path to OS libraries
  -Wa,<options>            Pass comma-separated <options> on to the assembler
  -Wp,<options>            Pass comma-separated <options> on to the preprocessor
  -Wl,<options>            Pass comma-separated <options> on to the linker
  -Xassembler <arg>        Pass <arg> on to the assembler
  -Xpreprocessor <arg>     Pass <arg> on to the preprocessor
  -Xlinker <arg>           Pass <arg> on to the linker
  -combine                 Pass multiple source files to compiler at once
  -save-temps              Do not delete intermediate files
  -pipe                    Use pipes rather than intermediate files
  -time                    Time the execution of each subprocess
  -specs=<file>            Override built-in specs with the contents of <file>
  -std=<standard>          Assume that the input sources are for <standard>
  --sysroot=<directory>    Use <directory> as the root directory for headers
                           for headers and libraries
  -B <directory>           Add <directory> to the compiler's search paths
  -b <machine>             Run gcc for target <machine>, if installed
  -V <version>             Run gcc version number <version>, if installed
  -v                       Display the programs invoked by the compiler
  -###                     Like -v but options quoted and commands not executed
  -E                       Preprocess only]
ply
Piegowaty Guziec
Piegowaty Guziec
Posty: 2
Rejestracja: 01 wrz 2006, 19:09
Płeć: Mężczyzna
Wersja Ubuntu: inny OS
Środowisko graficzne: GNOME
Architektura: x86
Kontakt:

Post autor: ply »

Musiałeś widocznie już kiedyś to instalować.
Wszystko jest OK.
Zostaję na Archu.
Lestat
Piegowaty Guziec
Piegowaty Guziec
Posty: 7
Rejestracja: 22 gru 2005, 16:42
Płeć: Mężczyzna
Wersja Ubuntu: 12.04
Środowisko graficzne: GNOME
Architektura: x86_64

Post autor: Lestat »

stefekxxl pisze:witam, potrzebuje kompilatora jezyka C. czy w ubuntu (po instalacji) jest juz cos takiego?
jak chcesz coś ala DevC++ to zapodaj sobie Anjuta IDE (jest w repo)
stefekxxl
Piegowaty Guziec
Piegowaty Guziec
Posty: 6
Rejestracja: 06 sty 2007, 18:45
Płeć: Mężczyzna
Wersja Ubuntu: 7.10
Środowisko graficzne: GNOME

Post autor: stefekxxl »

ply pisze:Musiałeś widocznie już kiedyś to instalować. Wszystko jest OK.
to spoko, dzieki za info :smile:
Lestat pisze:jak chcesz coś ala DevC++ to zapodaj sobie Anjuta IDE (jest w repo)
kompilator C jest mi potrzebny sporadycznie, dlatego wystarczy mi cos prostego do kompilacji w terminalu (tak jak np. free pascal- cos tego typu).
DummyUser

Post autor: DummyUser »

Lestat pisze:jak chcesz coś ala DevC++ to zapodaj sobie Anjuta IDE (jest w repo)
Bardzo podobny do DevC++ jest Code::Blocks, polecam: http://www.codeblocks.org
ODPOWIEDZ

Wróć do „Ostatnia deska ratunku”

Kto jest online

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