Fórum Ubuntu CZ/SK
Ostatní => Otevřená diskuze kolem Linuxu a OSS => Téma založeno: Peter Smatana 21 Června 2006, 15:29:46
-
Dobrý den. Pokouším se programovat v Linuxu v jazyce C. Napsal jsem si ve vim-ovi hello world:
#include <stdio.h>
main(void)
{
printf("ahoj");
retunr 0;
}
Zkompiloval jsem ho: gcc -o zdrojak zdrojak.c (takhle to píšou v knížce) a dostal jsem tento výpis:
root@smonty:~# gcc -o zdrojak zdrojak.c
zdrojak.c:1:19: error: stdio.h: není souborem ani adresářem
zdrojak.c: In function ‘main’:
zdrojak.c:5: warning: incompatible implicit declaration of built-in function ‘printf’
zdrojak.c:6: error: ‘retunr’ undeclared (first use in this function)
zdrojak.c:6: error: (Each undeclared identifier is reported only once
zdrojak.c:6: error: for each function it appears in.)
zdrojak.c:6: error: syntax error before numeric constant
poradíte mi někdo kde dělám chybu? díky smonty (na manuál gcc jsem se díval ale má cca 8897 stran anglicky)
-
Ano, přepište ten zdroják podle knížky přesně... podobně bohužel nestačí :-).
Také musíte mít nainstalované vývojové knihovny:
sudo apt-get install build-essentialO.
-
dik,
btw: sorry ale ty jsi asi urcite linuxovy/programatorsky guru. ja su amater ale makam na sobe. kazdy nejak zacina :-)
-
Neberu to tak vážně, jak to z toho fóra může vypadat... Ty smajlíky to občas nevyjádří přesně...
Jinak ten příklad z knížky je navíc blbě, měl bys explicitně uvést, že návratová hodnata main je int, tj. něco jako:
#include <stdio.h>
int main(void) {
puts("ahoj, svete.\n");
return 0;
}
pár vysvětlivek... puts je lepší používat, když vypisuješ statické řetězce, protože printf se snaží rozebrat první parametr a hledá v něm formátovací značky.
V Cčku také musíš explicitně vypsat konec řádku, Cčko dělá opravdu jen to, co mu řekneš, žádná automagická funkcionalita tam není.
A jen tak na okraj, pokud se učíš programovat, tak bych ti raději doporučil pro začátek Python, je to moc hezký jazyk a většina věcí se v něm píše mnohem rychleji a elegantněji, ale samozřejmě záleží na oblasti použití.
O.
-
C je krásný a poměrně jednoduchý jazyk. Jen se v něm občas musí napsat víc instruckí než v jiných jazycích, protože opravdu dělá téměř jen to co se mu řekne :). Rozhodně se ho uč. Když jsem kompiloval první zdroják na linuchu taky mi to řvalo že nemůže najít hlavičkové soubory :D
-
Ano, souhlasím s tím, že C je krásný jazyk. Jen říkám, že záleží na oblasti použití. GUI aplikaci pro desktop skoro dneska nemá smysl psát v Cčku a naopak modul do apache těžko v Pythonu někdo bude psát.
-
Ono je to těžké, já se učím programovat v C, Delphi, PHP, používat Linux a nevím jestli se učit v Perlu nebo v Pythonu. Jsem na gymplu v prváku a mám relativně dost času :-D
btw: Jaký je rozdím mezi Perlem a Pythonem? proč se učit ten a ne ten druhý, co je lepší, používanější?
-
btw: Jaký je rozdím mezi Perlem a Pythonem? proč se učit ten a ne ten druhý, co je lepší, používanější?
Heh, no to je o tom, co chces. Python je IMHO rozsirenejsi, pisou se v nem i velke aplikace, jako je skvely Gajim nebo Portage. Perl je spise na skripty, nevim o zadne velke aplikaci v Perlu. Zase ma ale vyuziti ohledne webu. V obou se casto pisou boti (i kdyz casteji v Pythonu). A co se tyce regularnich vyrazu, tak je naprosto neoddiskutovatelne, ze Perl rulez ;-) Perl je prakticky (heh, ma to i v nazvu - Practical Extraction and Report Language), nevykecava se s clovekem hodinu o tom, jakou knihovnu pouzit atp., ale "jde rovnou na vec". Ma silene volnou syntax. V Linuxu se da velmi dobre upotrebit jednorazove v bashi...J
-
http://www.linuxsoft.cz/article_list.php?offset=32&id_kategory=210
http://www.linuxsoft.cz/article_list.php?id_kategory=217
-
btw: Jaký je rozdím mezi Perlem a Pythonem? proč se učit ten a ne ten druhý, co je lepší, používanější?
Heh, no to je o tom, co chces. Python je IMHO rozsirenejsi, pisou se v nem i velke aplikace, jako je skvely Gajim nebo Portage. Perl je spise na skripty, nevim o zadne velke aplikaci v Perlu. Zase ma ale vyuziti ohledne webu. V obou se casto pisou boti (i kdyz casteji v Pythonu). A co se tyce regularnich vyrazu, tak je naprosto neoddiskutovatelne, ze Perl rulez ;-) Perl je prakticky (heh, ma to i v nazvu - Practical Extraction and Report Language), nevykecava se s clovekem hodinu o tom, jakou knihovnu pouzit atp., ale "jde rovnou na vec". Ma silene volnou syntax. V Linuxu se da velmi dobre upotrebit jednorazove v bashi...J
:-) Tak to jsi mě pobavil s tím, že je Python rozšířenější... Perl je asi tak dvakrát třikrát starší jazyk a jsou v tom psané mnohé velké obludnosti. Python je novější a modernější jazyk a má mnohem lepší návrh.
Nicméně pokud se chceš učit něco od začátku, tak rovnou Python. Je to mnohem přehlednější jazyk. Ona volná struktura Perlu vede většinou pak k tomu, že pokud programátor nemá vysokou kulturu psaní programů, tak to po něm už nikdy nikdo nepřečte.
Takže určitě Python.
-
Velke obludnosti v Perlu - mohu prosit o par prikladu? Pro pouceni, dik :-) Mne tedy prijde, ze moderni veci se pisou v jednom kuse v Pythonu, ale programator prece jenom nejsem. J
-
můžete mi poradit, kde se dají stáhnout potřebné hlavičkové soubory pro počítač, který není na síti?
instaloval jsem Kubuntu doma, ale nemohu kvůli tomu zkompilovat ndiswrapper, protože hlavičkové soubory chybí
-
můžete mi poradit, kde se dají stáhnout potřebné hlavičkové soubory pro počítač, který není na síti?
instaloval jsem Kubuntu doma, ale nemohu kvůli tomu zkompilovat ndiswrapper, protože hlavičkové soubory chybí
Tipoval bych to na balíčky: linux-headers
-
apt-get mi dal na výběr šest balíčků, který z nich si mám vybrat?
-
Vyberte ten podle vašeho jádro
Jádro zjistíte příkazem
uname -r