[Powered by Google Translate] [Tee, rõkkama]
[Nate Hardison] [Harvardi Ülikool]
[See on CS50] [CS50.TV]
Niisiis, oletame, et ma olen kirjutanud veidi C programm välja trükkida sõna "Hello, world!"
ja ma olen salvestanud selle faili nimega hello.c.
Kuidas tegelikult teha selle programmiga?
Kui ma lihtsalt proovida töötab. C faili, et ei kavatse teha.
>> Arvuti ei kavatse pidada seda C programmi nagu ma ette.
Selgub, et kuigi K-kood tundub päris segasena alguses,
see on ikka ei madala piisavalt arvuteid mõista.
Enne, kui saate C koodi arvutis, tuleb esmalt koostada,
mis muudab teie C kood masinkoodidena,
mis - nagu nimigi ütleb - on kahendvormingus et masin saab aru.
>> Lihtsaim viis seda teha on lihtsalt kasutada käsku nimega "teha."
Tee on utiliit koostamise lähtekoodi.
See ei ole kompilaator ise, vaid pigem programm, mis korraldab invocations koostaja
aasta lähtekoodi faile nii, et asjad koostatud nõuetekohasust
ja õige tee, sest kompilaatori lipud saavad omamoodi keeruline, nagu me näeme.
See on eriti kasulik, kui te töötate koos suuri projekte, kus on palju lähtekoodi failid
ja palju erinevaid teeke.
Aga see on ka tore, et seda kasutada, kui sa oled lihtsalt töötab ühes failis.
Niisiis, oletame, koostab selle "Hello, world!" Programmi abil teha.
Nimi minu lähtekoodi fail on hello.c, nii et ma kirjuta teha tere,
ja teha kasutab oma Vaikeseadistusest nende kogumiseks.
>> Eeldusel, et kõik läheb hästi, saan kasutada ls käsk nimekirja kõik failid kataloogi,
ja ma peaks nägema uus fail nimega "tere."
See fail nimega "käivitatav"
ja see on kahendvormingus et arvuti saab aru.
Kui me seda avatumaks, näeme mõningaid märke, et me saame aru,
kuid enamasti on see lihtsalt hunnik Hölynpöly.
Kuid ma saan käivitada seda faili ja vaadata seda välja trükkida "Tere, maailm!" ikka ja jälle.
>> Oh, põnevust!
Nii, lähme tagasi natuke meie make ja vaata, mis tegelikult juhtus
et toota käivitatava faili.
Te näete, et kui ma jooksin teha, see välja trükkida seda joont
alustades "rõkkama" ja lõpetades "tere."
Seda teha tuginedes kompilaator - antud juhul üks nn "rõkkama"
Kimbu default lipud või võimalusi, et toota meie käivitatav.
>> Rõkkama on üks mitmest C kompilaatorid seal maailmas.
Te olete kuulnud või kasutanud muid riske,
eriti üks nn "gcc", mis on eriti levinud.
Me oleme otsustanud kasutada rõkkama sisse CS50, sest me arvame, et on tõesti head tööd
pakkuda kasulikke hoiatusi ja veateateid
ja kuna kasutades on tõesti sarnane kasutades gcc,
nii saab päris kergesti vahetada kaks.
>> Kui teha jooksis rõkkama, siis jooksis ta terve hunnik võimalusi.
Kuid see ei ole vaja kasutada kõiki neid võimalusi
lihtsalt koostada ühtset. C lähtekoodi faili.
Kõik ma pean tegema, on kasutada rõkkama hello.c.
Jällegi, kui kõik hästi läheb, see toodab käivitatava faili.
Siiski, kui ma püüan töötab. / Hello, ma saan veateate, öeldes, et seal ei ole sellist faili või kataloogi.
Mis juhtus?
Rõkkama vaikimisi nimed oma käivitatavad a.out,
mida me näeme, kui me nimekirja kataloog ls.
See fail saame joosta, ja seda ka välja trükkida "Tere, maailm!" nagu ette nähtud.
>> Kui me tahame ümber käivitatava,
saame kasutada move käsu seda teha,
kuid enamiku ajast me lihtsalt tahame rõkkama teha õige nime meile.
Me saame seda teha koos-o lipu.
Kui ma jooksen rõkkama hello.c-o hello,
Siis ma saan käivitatava nimega "tere."
-O valik on super levinud, nii et oodata ja kasutan seda palju.
Järgmise rõkkama võimalusi, et näete palju algama-W.
Need valikud määravad, milliseid hoiatusi rõkkama annab sulle oma kood.
Näiteks rõkkama võib hoiatada, kui te deklareerite muutuja, mis on kunagi kasutanud.
Kui ma panen int muutuja nimega x on hello.c
ja seejärel kompileerida koos rõkkama-Wunused muutujaga hello.c-o hello,
Rõkkama hoiatab mind selle kasutamata muutuja minu koodi.
>> Nüüd on tonni erinevaid hoiatus tüübid,
ja see oleks ebameeldiv on neid kõiki loetleda välja, kui sa jooksed rõkkama.
Selle asemel on otsetee võimalus muuta need kõik - Seina.
Meil on see vaikimisi sisse lülitatud, kui sa jooksed teha aparaat,
nii saad kõik hoiatused, et rõkkama teile anda oma kood.
Üldiselt võttes oma koodi toota koostamise hoiatusi ei ole hea asi,
ja me ootame programmid, mida te kirjutada CS50 tuleb hoiatus tasuta.
Kuid nagu näete, rõkkama ikkagi toota käivitatava faili
isegi kui seal on hoiatus ajal koostamise protsessi.
Me ei saa siiski sundida rõkkama lõpetada koostamine ja toota viga
kui tal tekib midagi väärt hoiatuse koodi.
Me teeme seda koos-Werror võimalus.
>> Nüüd, kui ma kompileerida minu hello.c faili kasutamata int muutuja x,
Ma ei saa käivitatava faili.
Nüüd ma ei saa eirata koostamise hoiatusi.
Ma pean minema määrata minu koodi.
Teine oluline võimalus on-ggdb.
See võimaldab eri silumisinfoga käivitatava faili,
nii et ma saan käivitada siluri gdb, kui see kokku jookseb.
Ilma seda võimalust, ma ei pääse palju minu programmi teabe gdb
nagu muutuja ja funktsioonide nimed,
nii et see on oluline lisada-ggdb ka.
Kui sa jooksed teha seadmele, see võimalus on ka vaikimisi.
>> Viimane võimalus, et see on oluline teada on-l,
mida kasutatakse teekide oma kood.
Näiteks kui soovite kasutada funktsioone CS50 raamatukogu, nagu getString,
sa pead veenduge, et mitte ainult sa # include raamatukogu päisefail, CS50.h,
oma. C lähtekoodi faili
kuid ka seda, et te kasutate-lcs50 koostamisel,
nii et raamatukogu elluviimine on seotud oma programmi.
Muudame Tere maailm programm ajendab kasutaja jaoks nime getString funktsioon
ja siis kasuta nime meie tere string.
>> Nüüd, kui me püüame koostada selle programmi o kasutades-lcs50,
saame veast määratlemata viide getString.
Uh oh! Olgem lisada-lcs50, ja nüüd kõik töötab just fine.
>> Üks gotcha on see, et see ei tee vahet, kus on käsk, mida kirjutad-lcs50.
Kui ma kirjutan selle enne kui ma kirjutan hello.c, siis CS50 raamatukogu on koormatud ja töödeldud
enne minu lähtekoodi.
Niisiis, see on sama, kui ma ei kirjuta-lcs50 üldse.
Nagu rusikareegel, siis tavaliselt tahavad panna kõik oma-l valikuid
aasta lõpus oma käsk.
Nii, nüüd lähme panna see kõik koos.
Rõkkama-ggdb Seina-Werror hello.c-lcs50-o hello -
see on palju asju.
>> Sellepärast mark on nii kasulik. Ta hoolitseb kõike seda sinu jaoks.
>> Nii, nüüd on sul hea idee, mida läheb koostamise oma kood.
Minu nimi on Nate Hardison. See on CS50.
[CS50.TV]