Céčko s gcc

MilanC

Céčko s gcc
« kdy: 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


Re:Céčko s gcc
« Odpověď #1 kdy: 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.)

pb

Re:Céčko s gcc
« Odpověď #2 kdy: 01. 09. 2014, 12:30:45 »

noname

Re:Céčko s gcc
« Odpověď #3 kdy: 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.

uc3

Re:Céčko s gcc
« Odpověď #4 kdy: 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.


Jimm

Re:Céčko s gcc
« Odpověď #5 kdy: 01. 09. 2014, 12:59:09 »
A já bych to velké programování začal učebnicí angličtiny.

Kiwi

Re:Céčko s gcc
« Odpověď #6 kdy: 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?

MilanC

Céčko s gcc
« Odpověď #7 kdy: 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 ....

seasonic

Re:Céčko s gcc
« Odpověď #8 kdy: 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íš.

Re:Céčko s gcc
« Odpověď #9 kdy: 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..

Jimm

Re:Céčko s gcc
« Odpověď #10 kdy: 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.

noname

Re:Céčko s gcc
« Odpověď #11 kdy: 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)

jenda

Re:Céčko s gcc
« Odpověď #12 kdy: 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

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:Céčko s gcc
« Odpověď #13 kdy: 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é.

Jenda

Re:Céčko s gcc
« Odpověď #14 kdy: 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++)).