Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: MilanC 01. 09. 2014, 12:01:14

Název: Céčko s gcc
Přispěvatel: MilanC 01. 09. 2014, 12:01:14
Zdravím Vás,
prosím o radu, začínám programovat (učit se) v Céčku, ale nemohu to rozjet. V linuxu mintu používám geany a terminál. V obou mi skripty v pythonu a lue (drobnosti na zkoušku typu ahoj světe) normálně běží. Céčko ale ne. Zaregistroval jsem, že je potřeba zlinkovat něco s něčím. V PC jsem našel tři soubory stdio.h. Jeden jsem si nahodile vybral a v příkazové řádce pak napsal něco jako: link  /usr/include/stdio.h pokus.c. Zadal jsem cosi podobného mockrát a hlásí mi to, že soubor již existuje apod., ale pořád neprogramuju. Potřeboval bych prostě návod k používání C a gcc. Nechci být neskromný, ale osmiset stránkový gcc-~.doc v angličtině mi nestačí.
Díky
Název: Re:Céčko s gcc
Přispěvatel: Ondra Satai Nekola 01. 09. 2014, 12:29:32
Linkuji se binarky, ne hlavickove soubory.
Dobry uvod byla Heroutova ucebnice, prestoze neni primarne o GCC, ale koncepty tam jsou popsane dobre.

Misto gcc bych na hrani zvazil Clang/LLVM, chybove hlasky jsou afaik o neco privetivejsi. (Ale s prekonanim zakladnich neznalosti ti to nepomuze.)
Název: Re:Céčko s gcc
Přispěvatel: pb 01. 09. 2014, 12:30:45
Třeba tohle? http://www.fit.vutbr.cz/~martinek/clang/gcc.html
Název: Re:Céčko s gcc
Přispěvatel: noname 01. 09. 2014, 12:35:30
Zdravím Vás,
prosím o radu, začínám programovat (učit se) v Céčku, ale nemohu to rozjet. V linuxu mintu používám geany a terminál. V obou mi skripty v pythonu a lue (drobnosti na zkoušku typu ahoj světe) normálně běží. Céčko ale ne. Zaregistroval jsem, že je potřeba zlinkovat něco s něčím. V PC jsem našel tři soubory stdio.h. Jeden jsem si nahodile vybral a v příkazové řádce pak napsal něco jako: link  /usr/include/stdio.h pokus.c. Zadal jsem cosi podobného mockrát a hlásí mi to, že soubor již existuje apod., ale pořád neprogramuju. Potřeboval bych prostě návod k používání C a gcc. Nechci být neskromný, ale osmiset stránkový gcc-~.doc v angličtině mi nestačí.
Díky

Nepochopil jsem sice z Vašeho popisu s čím konkrétně máte problém, ale spuštění "Hello world" v C je velice jednoduché.
Program by měl vypadat asi takto:
Kód: [Vybrat]
#include <stdio.h>

int main(void){
printf("Hello world\n");
return 0;
}
Poté, co soubor uložíte (např. se jménem helloWorld.c), v příkazovém řádku přejdete do adresáře, ve kterém se nachází onen soubor se zdrojovým kódem a zadáte příkaz potřebný pro překlad.
Kód: [Vybrat]
gcc helloWorld.c -o helloWorld
(Pozn. přepínač -o označuje název výstupního souboru.)

Po jeho provedení je v aktuálním adresáři vytvořen spustitelný binární soubor s názvem "helloWorld", který spustíte velice jednoduchým způsobem.
Kód: [Vybrat]
./helloWorld

Budete-li mít jakýkoliv další dotaz, dejte vědět.
Název: Re:Céčko s gcc
Přispěvatel: uc3 01. 09. 2014, 12:51:58
Možná by nebylo od věci, přečíst si nějakou učebnici. V češtině vyšla třeba docela dobrá dvoudílná Učebnice jazyka C od Herouta.
Název: Re:Céčko s gcc
Přispěvatel: Jimm 01. 09. 2014, 12:59:09
A já bych to velké programování začal učebnicí angličtiny.
Název: Re:Céčko s gcc
Přispěvatel: Kiwi 01. 09. 2014, 15:53:18
Nechci být neskromný, ale osmiset stránkový gcc-~.doc v angličtině mi nestačí.

A použít google tě nenapadlo, když oficiální manuál ti nestačí? Nechci být sarkastický, ale fakt si myslíš, že máš k programování ty potřebné vlohy?
Název: Céčko s gcc
Přispěvatel: MilanC 01. 09. 2014, 16:38:22
Děkuji Vám všem, už mi to běží.
    Budu se zabývat všemi vašemi radami nebo odkazy, abych v tom nabyl zkušeností, ale zatím jsem se řídil podle pana noname.
Učebnici angličtiny již řadu let vlastním. V Heroutově učebnici jazyka C mám již přečtenu předmluvu. Já bych potřeboval víc těch základů - "zkompilovat, přeložit, sestavit, spustit" a kdo ví co ještě .... Python se totiž choval jinak než C, při tom mém spouštění (hlavně v geany), a spouštět příkazem gcc cé-soubor zřejmě nebylo to pravé.
S tímto příkazem "./" jsem se nedávno setkal (./configure), ale nevěděl jsem co znamená (teď už ano).
Vygooglované texty, samozřejmě i anglické, mi nepomohly. Já měl totiž všechno jinak, včetně kódu, dobře, až na ten základ: "... co teď s tím?" .
Tak, jdu do toho, a když se to naučím, ... tak vlohy mám.
Mějte se ....
Název: Re:Céčko s gcc
Přispěvatel: seasonic 01. 09. 2014, 16:45:18
Zaregistroval jsem, že je potřeba zlinkovat něco s něčím. V PC jsem našel tři soubory stdio.h. Jeden jsem si nahodile vybral a v příkazové řádce pak napsal něco jako: link  /usr/include/stdio.h pokus.c. Zadal jsem cosi podobného mockrát a hlásí mi to, že soubor již existuje apod., ale pořád neprogramuju.

Máš aspoň představu, čeho jsi tím příkazem chtěl dosáhnout nebo to byla metoda pokus/omyl?

To linkování, které jsi, jak píšeš, "zaregistroval", nemá nic společného s linky mezi soubory v souborovém systému, o což ses ve skutečnosti příkazem link pokusil Ty. Jedná se o proces, při kterém linker (což je takový brácha kompilátoru) sestaví z objectfiles (které předtím vytvořil kompilátor) výslednou binárku, kterou je operační systém schopný zavést do paměti a spustit.

Skutečně se chceš učit C? Je to dost nízkoúrovňová záležitost a budeš potřebovat operačnímu systému i počítači hodně vidět pod kapotu. A jsem si naprosto jistý, že teď tam moc nevidíš.
Název: Re:Céčko s gcc
Přispěvatel: Ondra Satai Nekola 01. 09. 2014, 16:59:35
V Heroutově učebnici jazyka C mám již přečtenu předmluvu.

A neveril bys, kolik informaci bude v dalsich kapitolach! Jde z nich pochopit trebas to, co vlastne linkovani dela a proc je to, co jsi zkousel nesmysl..
Název: Re:Céčko s gcc
Přispěvatel: Jimm 01. 09. 2014, 17:09:27
Tak to je dokonalý vtip, poprskal jsem si monitor kafem!  ;D
V Heroutově učebnici jazyka C mám již přečtenu předmluvu.
Název: Re:Céčko s gcc
Přispěvatel: noname 01. 09. 2014, 17:09:58
Nechte ho žít, každý nějak začíná. Nakopnout správným směrem stačí, a on už se rozprogramuje a časem zjistí, že se bez čtení či angličtiny neobejde  ;D. (Taky jsem se kdysi vyhýbal angličtině.  :D)
Název: Re:Céčko s gcc
Přispěvatel: jenda 01. 09. 2014, 18:53:08
+1 Jimm, taky jsem malem upad z klekacky, asi je vratka :)
Jinak ale uplne OP rozumim - i ja si tim kolikrat prosel - vzdy v necem novem - je proste pro neznaleho problem vubec neco spustit. I blba java, nedejboze erlang - a to jste nevideli ty chybovy hlasky :-/
Kdejakej lumen, co ma pocit, ze sezral prorokovo buhvico, doporuci manual na 500 stranek.
Snad neni takovej problem napsat 3 radky, jak zacit ?!?!
To uz nikdo nezna soudruhovo Komenskyho "skola hrou" ?
Nekdy mi to dokonce pripada jako takova male ceske "kdyz ja jsem se musel trapit, tak ty se treba ...." - gratuluju
Název: Re:Céčko s gcc
Přispěvatel: eMko 01. 09. 2014, 22:31:51
Jenda: tohle je přesně ten typ příspěvku, po kterém se často strhne flame. Zvlášť toto fórum je na to snad až příliš náchylné.
Název: Re:Céčko s gcc
Přispěvatel: Jenda 02. 09. 2014, 03:27:11
Poté, co soubor uložíte (např. se jménem helloWorld.c), v příkazovém řádku přejdete do adresáře, ve kterém se nachází onen soubor se zdrojovým kódem a zadáte příkaz potřebný pro překlad.
Kód: [Vybrat]
gcc helloWorld.c -o helloWorld
Doporučuji ještě přidat -std=gnu99. Zapne to některé příjemné věci, třeba deklaraci proměnných uvnitř for cyklu (for(int i = 0; i<5; i++)).
Název: Re:Céčko s gcc
Přispěvatel: tany 02. 09. 2014, 06:53:40
...Nekdy mi to dokonce pripada jako takova male ceske "kdyz ja jsem se musel trapit, tak ty se treba ...." - gratuluju

+1 Spíše mi to přijde jako arogance programátorů k "pitomcům co chtěj fušovat do programování".

Jinak ale souhlasím s tím, že c není zrovna vhodný začátek pro programátora samouka. Spíše bych šáhnul po něčem na vyšší úrovni - klidně javu, na tu je od Herouta také pěkná knížka (kolik dílů to má nevím - googlit to nebudu).
Název: Re:Céčko s gcc
Přispěvatel: jenda 02. 09. 2014, 08:22:56
nebal bych se jit trochu s dobou ;)

http://play.golang.org

pripadne pro fanousky Facebooku

http://hacklang.org/tutorial/
Název: Re:Céčko s gcc
Přispěvatel: Kiwi 02. 09. 2014, 11:42:44
Ježiš, to jsou kecy!

...Nekdy mi to dokonce pripada jako takova male ceske "kdyz ja jsem se musel trapit, tak ty se treba ...." - gratuluju

+1 Spíše mi to přijde jako arogance programátorů k "pitomcům co chtěj fušovat do programování".

Mně to zase přijde jako arogance lam, které mají kolem sebe k dispozici tuny litaratury a všemožných tutoriálů, na papíře i na netu, anglicky i česky, a nejsou schopny do nich ani nahlédnout, jak jsou líné.
Já se jako kluk musel trápit s úplně jinými věcmi, jako třeba abych vůbec sehnal překladač Pascalu pro můj typ počítače, když jsem si chtěl po půl roce učení se toho jazyka vyzkoušet si to taky jinak než jen na papíře. Jestli někdo považuje přečtení pár řádků v učebnici/manuálu jako trápení, tak by se do prgání radši vůbec neměl pouštět, protože v tom případě pro něj bude prgání učiněný očistec.

I blba java, nedejboze erlang - a to jste nevideli ty chybovy hlasky :-/
To jsi neviděl ty chybové hlášky v 8bitové éře - Error 141. Jenže k tomu člověk neměl dokumentaci, tak si musel nějak domyslet, co to asi je za chybu.

Kdejakej lumen, co ma pocit, ze sezral prorokovo buhvico, doporuci manual na 500 stranek.
I ten 500stránkový manuál začíná prvním řádkem prvního odstavce první kapitoly.

Snad neni takovej problem napsat 3 radky, jak zacit ?!?!
Takové 3 řádky byly napsány už milionkrát. Opravdu je takový problém si je někde přečíst?

To uz nikdo nezna soudruhovo Komenskyho "skola hrou" ?
Komenský prosazoval aktivní účast studentů v učícím procesu namísto pasivního přijímání encyklopedických informací. Proto jsou jeho učebnice koncipovány tak, aby student pokud možno většinu látky pochopil a do souvislostí si zařadil sám na základě do té doby probrané látky. Jenže je nezbytné, aby ji nejdřív vůbec otevřel - a obzvláště u samouků je tento moment tak nějak kruciální.
Název: Re:Céčko s gcc
Přispěvatel: perceptron 02. 09. 2014, 12:16:13
hlavne neviem, podla akeho tutorialu pan tazatel ide

na zaciatok uplne staci `gcc ahoj_svet.c -o ahoj_svet`, resp. este lepsie `make ahoj_svet`.

na uvahy o linkovani je este kopa casu

nechapem, preco sa nevezme nejaky editor s kompilatorom

ak clovek funguje stylom, ze nic si neprecita, len patla a patla, tak to je tazko, lebo riesi problemy, ktore riesit nemusi
Název: Re:Céčko s gcc
Přispěvatel: Honza 02. 09. 2014, 12:49:19
Poté, co soubor uložíte (např. se jménem helloWorld.c), v příkazovém řádku přejdete do adresáře, ve kterém se nachází onen soubor se zdrojovým kódem a zadáte příkaz potřebný pro překlad.
Kód: [Vybrat]
gcc helloWorld.c -o helloWorld
Doporučuji ještě přidat -std=gnu99. Zapne to některé příjemné věci, třeba deklaraci proměnných uvnitř for cyklu (for(int i = 0; i<5; i++)).

Nemotejte mu hlavu, je to totální začátečník, co nejdřív potřebuje co nejjednodušším způsobem přeložit a spustit hello world. Pro tyhle jsem kdysi napsal http://www.linuxsoft.cz/article_list.php?id_kategory=186
Název: Re:Céčko s gcc
Přispěvatel: x14 02. 09. 2014, 13:00:49
Kiwi: +1
Název: Re:Céčko s gcc
Přispěvatel: Jimm 02. 09. 2014, 16:11:29
Dejte mu už svatej pokoj, vždyť už je za tou předmluvou!

ak clovek funguje stylom, ze nic si neprecita, len patla a patla, tak to je tazko, lebo riesi problemy, ktore riesit nemusi

Lidi sorry, ale přesně tyhle dotazy plodí matláci, kteří stejně v životě nic smysluplného nevyplodí, to není o začátku, to je o motivaci se učit. Funkční hello world se dá pro C i v Linuxu vygooglit bilionkrát a pokud tohle šoumen neudělal, je lepší když mu nikdo neporadí, ono ho to pustí, začně místo toho investovat svůj vzácný čas třeba do umění a něco na tom světě dokáže... Tohle prostě nemá cenu, když za něj vyřešíte tohle, stejně ztroskotá u další kapitoly kterou nepřečetl. A největší potřebu radit mají dle mého stejní matláci, kteří nemají ani takový rozhled, aby viděli že sami jen matlají...

Trochu jsem si zahateřil, ale stejně si myslím že to co píšu dává smysl...
Název: Re:Céčko s gcc
Přispěvatel: noname 02. 09. 2014, 22:22:08
Dejte mu už svatej pokoj, vždyť už je za tou předmluvou!

ak clovek funguje stylom, ze nic si neprecita, len patla a patla, tak to je tazko, lebo riesi problemy, ktore riesit nemusi

Lidi sorry, ale přesně tyhle dotazy plodí matláci, kteří stejně v životě nic smysluplného nevyplodí, to není o začátku, to je o motivaci se učit. Funkční hello world se dá pro C i v Linuxu vygooglit bilionkrát a pokud tohle šoumen neudělal, je lepší když mu nikdo neporadí, ono ho to pustí, začně místo toho investovat svůj vzácný čas třeba do umění a něco na tom světě dokáže... Tohle prostě nemá cenu, když za něj vyřešíte tohle, stejně ztroskotá u další kapitoly kterou nepřečetl. A největší potřebu radit mají dle mého stejní matláci, kteří nemají ani takový rozhled, aby viděli že sami jen matlají...

Trochu jsem si zahateřil, ale stejně si myslím že to co píšu dává smysl...

Já vím, taky si informace (nejen) v takovýchto případech hledám především sám a až poté píšu na fóru, ale sám mám ještě v paměti své vlastní začátky, kdy jsem jako samouk hledal různé informace a z různých důvodů jsem je nenacházel. Někdy se člověk zkrátka zasekne na banalitě, případně jednoduše neví, jak dál. Je sice pravda, že MilanC by měl číst a číst, ale někdy je potřeba člověka trošku popostrčit. Nevíme, jaké má zkušenosti (resp. víme, že jsou na bodu mrazu), nevíme, co má přesně napsané v knize, ze které se učí, netušíme ani věk, ani míru předchozích znalostí v oblasti programování (taky nejspíše spíše nic, než moc), takže je zbytečné předjímat.  Ostatně jestli máte pravdu, bude tady za chvíli další příspěvek (jaktože mi nefunguje scanf() tak, jak bych chtěl, proč mi nefunguje ukazatel ...) a vybarví se. Má před sebou asi 500 stran napěchovaných informacemi jen jako úvod a věřím, že než je všechny přečte budeme vědět, jestli je na fóru pečený vařený nebo jestli o něm uslyšíme jen ve výjmečných případech, či vůbec ne. Poslat do háje, případně na Google ho můžu vždycky. Znechutit mu to ale hned na začátku bych považoval za chybu.
Název: Re:Céčko s gcc
Přispěvatel: MilanC 03. 09. 2014, 15:05:03
Tak nevím, jestli čtu víc 1. nebo spíše 2. díl Herouta. Ale jak spustit program jsem zatím nikde nenašel. Ale to už nehledám.
    Zkušenosti jsou vždycky nějaké. Před dvaceti lety jsem seděl v učebně na Fsv v Dejvicích, na předmětu Programování, toho času a místa v C++. Tam jsme se učili, alespoň já, ve dvojicích u jednoho počítače hledat znaky na klávesnici. Pamatuji si, že mi dělalo problém třeba "z". Dlouho jsem se tam nezdržel.
    V té době jsem si též pořídil knihu Borland C++. Ještě ji někde mám, je pěkná. Bavila mě, jsou tam číslované příklady, v kterých jsem normálně s porozuměním došel až někam přes stý příklad. Ale dál už jsem nepokračoval, protože jsem neměl počítač.
    Nyní už PC dávno mám a dva roky mi funguje statický web v čistém html a vedle v souboru v css. No a ten, jelikož je to takový mini e-shop (objednávky přes mail), potřebuji, a ne jenom ten, trošku rozhýbat. Po dlouhých úvahách, čím ho rozhýbu, samozřejmě vyhrálo, ba i muselo nakonec vyhrát ... tramtadadá ... Céčko, poněvač s ním mám velké plány.  :D
Název: Re:Céčko s gcc
Přispěvatel: x14 03. 09. 2014, 15:29:05
¡TROLL ALERT!
Název: Re:Céčko s gcc
Přispěvatel: Kiwi 03. 09. 2014, 17:35:54
Tak nevím, jestli čtu víc 1. nebo spíše 2. díl Herouta. Ale jak spustit program jsem zatím nikde nenašel. Ale to už nehledám.
    Zkušenosti jsou vždycky nějaké. Před dvaceti lety jsem seděl v učebně na Fsv v Dejvicích, na předmětu Programování, toho času a místa v C++. Tam jsme se učili, alespoň já, ve dvojicích u jednoho počítače hledat znaky na klávesnici. Pamatuji si, že mi dělalo problém třeba "z". Dlouho jsem se tam nezdržel.
    V té době jsem si též pořídil knihu Borland C++. Ještě ji někde mám, je pěkná. Bavila mě, jsou tam číslované příklady, v kterých jsem normálně s porozuměním došel až někam přes stý příklad. Ale dál už jsem nepokračoval, protože jsem neměl počítač.
    Nyní už PC dávno mám a dva roky mi funguje statický web v čistém html a vedle v souboru v css. No a ten, jelikož je to takový mini e-shop (objednávky přes mail), potřebuji, a ne jenom ten, trošku rozhýbat. Po dlouhých úvahách, čím ho rozhýbu, samozřejmě vyhrálo, ba i muselo nakonec vyhrát ... tramtadadá ... Céčko, poněvač s ním mám velké plány.  :D

 ;D ;D ;D
No co, aspoň se člověk občas taky zasměje.
Název: Re:Céčko s gcc
Přispěvatel: Ondra Satai Nekola 03. 09. 2014, 17:43:34
Tak dnesni trening facepalmu mam za sebou :/
Název: Re:Céčko s gcc
Přispěvatel: hawran neprihlaseny 03. 09. 2014, 17:58:41
... cislovane priklady ...

Ja to vedel, ze jsem kdysi cosi vynechal!
Název: Re:Céčko s gcc
Přispěvatel: EsoRimer 29. 09. 2014, 16:12:43
Na C-čko a programování v linuxu jsou dobrý stránky http://www.sallyx.org/sally/c/linux/
Název: Re:Céčko s gcc
Přispěvatel: Krocan 29. 09. 2014, 16:49:37
Michal Kolesa revival?