C programmering

Kategori overført fra Linux1

C programmering

Innleggav Kåre Dump » ons 25.01.2006 10:45

Hei!

Har tenkt å driste meg inn på C (ikke C++) programmering, hvilke pakker må jeg installere for å få kompilert C-kode i Ubuntu??

Lasta ned en eller annen versjon av gcc, men fikk ett lass med kompilerings feil! (virker som om forsøkes kpmpilert som C++??)

Har NULL erfaring fra C/C++ fra før, men har programmert en del i Java2, i Eclipse

Tips om verktøy, debuggere etc. mottas med takk!

K-D
medlem i 219 måneder
 

Innleggav solskogen » ons 25.01.2006 11:46

med mindre det er installert fra før så trenger du gcc, make og muligens glibc-devel om det er noe som heter det.
medlem i 235 måneder
 

Innleggav ehh » ons 25.01.2006 19:16

Denne kommandoen installerer gcc og kompilerer et C-program kalt "test" (som ikke gjør noen ting :)

Kode: Merk alt
sudo apt-get install gcc && echo "int main(){return 0;}" > test.c && gcc test.c -o test

Brukerens avatar
medlem i 227 måneder
 

Innleggav ip » ons 25.01.2006 22:14

hehe... dette var optimistisk...

men hvis du virkelig har tenkt til å lære deg c, som jo er en god ting å kunne, så må du først ha noen forutsetninger:

1. du burde ha et prosjekt i tankene - koder du uten mål og mening kommer du ikke langt.

2. kjøp deg noen gode (ikke nødvendigvis de tykkeste) C bøker, sånn som Kernighan, Ritchie: "The C programming language".

3. lær deg å bruke en editor godt. selv bruker jeg vim, men for de som absolutt må ha alt i ett vindu så er det jo gode IDE'er som kdevelop og ajunta.

4. lær deg å bruke gnu make (se manualen på http://www.gnu.org)

5. bruk tid på å skrive koden "pent". følg bokforfatterens måte å skrive kode på, sjekk hvordan andre skriver koden, se hvordan større prosjekter skriver koden sin eks. gnu coding standard og finn ut hvorfor du burde skrive slik og slik.

5. bli kjent med kompilatoren og dens feilmeldinger, jobb med bok, kode og kompilator til ting kompilerer. (-Wall er en god ting)

6. bli kjent med debuggeren gdb, en kommer langt bare å kunne gjøre en bt (backtrace) for å finne ut hvor i koden det gikk galt. eventuelt bruk gui grensesnittet ddd til gdb.

7. bruk programmer som valgrind og kcachegrind for å finne minnelekasjer og optimaliseringspotensiale.

8. sørg for å bruke biblioteker og kode skrevet av andre som har en lisens som er i tråd med dine hensikter. eks. skal du skrive gpl kode så hold deg unna kode lisensiert under lisenser som ikke er kompatible, bruk heller et annet alternativ eller implementer det selv.

8. ta en utdannelse der du får erfaring med kodeprosjekter.

9. husk å kode for noe godt! :-)

dette var det jeg kom på i farta som noen av de viktigste stegene på veien. det er sikkert andre gode måter å komme i gang på, men dette har ihvertfall fungert for meg.

hvis du ikke har en god grunn for å bruke c ville jeg vurdert python (eller ruby, perl og c++) siden du har erfaring med java.
medlem i 231 måneder
 

Re: C programmering

Innleggav trondd » tor 26.01.2006 0:29

Kåre Dump skrev:Hei!

Har tenkt å driste meg inn på C (ikke C++) programmering, hvilke pakker må jeg installere for å få kompilert C-kode i Ubuntu??

...


Kode: Merk alt
$ ~ sudo aptitude install build-essential


Burde få deg et stykke på vei :)

Erfaren
Brukerens avatar
medlem i 228 måneder
 

Innleggav lahgoon » tor 26.01.2006 10:13

flex og bison pakkene, + gcc-doc er også kjek. sist jeg testet ubuntu var gcc 4.0 ustabilt, så jeg vil foretrekke å bruke
Kode: Merk alt
apt-get install gcc-3.4 gcc-doc flex bison

Brukerens avatar
medlem i 232 måneder
 

Innleggav chrishan » tor 26.01.2006 12:03

hvis du ikke har en god grunn for å bruke c ville jeg vurdert python (eller ruby, perl og c++) siden du har erfaring med java.


jeg kan ikke få understreket godt nok hvor enig jeg er i det der.... c er et helvete, og for folk som virkelig vet hva de driver med. gå heller for python eller perl!!!

Brukerens avatar
medlem i 227 måneder
 

Innleggav lahgoon » tor 26.01.2006 12:30

C er seffølgelig det beste språket av de å programmere i. Pga det er nermere maskinkodene en de andre.. Faktisk raskere også, pga den slipper å gå gjennom en evnt run-time osv først..

Brukerens avatar
medlem i 232 måneder
 

Innleggav lessthanjake » tor 26.01.2006 14:17

Å si at C er best eller at Python er best osv viser jo bare hvor lite dere kan!
Alt til sitt bruk og det beste er så klart å kunne begge, de utfyller hverandre. de er ikke alternativer til hverandre. Jeg kan, og bruker, begge og vil si at du lærer best å programere hvis du starter med C. Da tvinges du til å lære litt om maskinarketektur og hvordan er programmeringspråk fungere. Overgangen til python vil da være ganske myk. Men man bør helt ha implementert stakker, lister og den slags maulet i C en gang eller to ellers vil man få lite forståelse for hva som skjer i Python når du f.eks opererer på lister.

Anbefaler at du lærer deg C, det er i alle fall nyttig uansett hva du skal gjøre senere. Kerninghan og Richie sin bok er superbra og passe tykk. Og den stikker ikke de tekniske delene av spåket under en stol, noe mange bøker gjør og det er å gjøre folk en bjørnetjeneste mener jeg. Eksempel er f.eks at mange tror(og regner med det når de skriver) at en int er 8bit, det det ikke noe i standarden som sier, og man får "fine" bugs

Brukerens avatar
medlem i 230 måneder
 

Innleggav ehh » tor 26.01.2006 14:34

lessthanjake skrev:du lærer best å programmere hvis du starter med C. Da tvinges du til å lære litt om maskinarkitektur og hvordan et programmeringsspråk fungerer. Overgangen til Python vil da være ganske myk. Men man bør helt ha implementert stakker, lister og den slags manulet i C en gang eller to, ellers vil man få lite forståelse for hva som skjer i Python når du f.eks. opererer på lister.


Hvorfor mener du en bør forstå dette for å bruke lister?

lessthanjake skrev:Anbefaler at du lærer deg C, det er i alle fall nyttig uansett hva du skal gjøre senere. Kerninghan og Richie sin bok er superbra og passe tykk. Og den stikker ikke de tekniske delene av spåket under en stol, noe mange bøker gjør og det er å gjøre folk en bjørnetjeneste mener jeg. Eksempel er f.eks at mange tror(og regner med det når de skriver) at en int er 8bit, det det ikke noe i standarden som sier, og man får "fine" bugs


Hvem i all verden tror en int er 8 bit? (2^8 = 256) :)

Brukerens avatar
medlem i 227 måneder
 

Innleggav buskmann » tor 26.01.2006 15:10

Så vidt jeg husker så er det kun char som definert i standarden. (il 8 bit/1 byte).

De andre typene er implementasjonsavhengig.
medlem i 226 måneder
 

Innleggav trondd » tor 26.01.2006 16:55

ehh skrev:Denne kommandoen installerer gcc og kompilerer et C-program kalt "test" (som ikke gjør noen ting :)

Kode: Merk alt
sudo apt-get install gcc && echo "int main(){return 0;}" > test.c && gcc test.c -o test


Å lage testprogram som heter "test" kan ha sine ulemper, siden test er en innebygd funksjon de aller fleste skall, og da vil den vanligvis bli kjørt i stede for test-fila di :)

Hvis man ikke husker å legge til en bitteliten ./ foran da ...

Erfaren
Brukerens avatar
medlem i 228 måneder
 

Innleggav Sulle » tor 01.03.2007 13:52

Hvor kan jeg finne nedlastbare C tutorials / ebooks ? noen som vet noen urls?

har googla og funnet, men må ha mer osv.

Brukerens avatar
medlem i 208 måneder
 

Innleggav moma » tor 01.03.2007 14:02

Her er en merkelig webside med samling av noen viktige lenker.
http://www.futuredesktop.org/opportunities.html

Studer spesielt
C-FAQ...
Dev.FAQ.*.
Unix FAQ.*.

+ kanskje denne
http://www.cs.cf.ac.uk/Dave/C/CE.html

og litt om Makefiles
http://i1.no/043b/

Hvilket IDE (utviklingsverktøy) akter du å bruke ?
Kommandolinje + teksteditor?, Anjuta? KDevelop? eller Code::Blocks..?

Erfaren
Brukerens avatar
medlem i 235 måneder
 


Returner til Utvikling i Linux



Hvem er i Forumene

Registrerte brukere: Google [Bot]