1 00:00:00,220 --> 00:00:02,300 [Powered by Google Translate] [Make Apsukite metalinis garsas] 2 00:00:02,300 --> 00:00:03,970 [Nate Hardison] [Harvardo universiteto] 3 00:00:03,970 --> 00:00:07,290 [Tai CS50] [CS50.TV] 4 00:00:07,290 --> 00:00:11,620 Taigi, tarkime, aš parašiau šiek tiek C programą, spausdinti žodžius "Hello, World!" 5 00:00:11,620 --> 00:00:14,550 ir aš jį išgelbėjo failą pavadinimu hello.c. 6 00:00:14,550 --> 00:00:17,450 Kaip realiai paleisti šią programą? 7 00:00:17,450 --> 00:00:20,860 Jei aš tiesiog pabandykite paleisti failą. C, kad nesiruošia dirbti. 8 00:00:20,860 --> 00:00:24,800 >> Kompiuteris nesiruošia laikyti jį kaip C programą, kaip aš ketina. 9 00:00:24,800 --> 00:00:28,530 It turns out, kad nors C kodas, iš pradžių atrodo gana paslaptingas, 10 00:00:28,530 --> 00:00:32,470 ji vis dar nėra žemo lygio pakankamai kompiuteriai ją suprasti. 11 00:00:32,470 --> 00:00:36,800 Prieš galite paleisti C kodą kompiuteryje, pirmiausia reikia surinkti, 12 00:00:36,800 --> 00:00:39,540 , kuris paverčia jūsų C kodą į mašininiu kodu, 13 00:00:39,540 --> 00:00:44,380 - kaip jos vardas reiškia - yra dvejetainis formatas, kad mašina gali suprasti. 14 00:00:44,380 --> 00:00:48,240 >> Pats paprasčiausias būdas tai padaryti yra tiesiog naudokite komandą, pavadintą "padaryti". 15 00:00:48,240 --> 00:00:52,690 Padaryti, yra įrankis sudarymo šaltinio kodą. 16 00:00:52,690 --> 00:00:58,170 Tai ne kompiliatorius pats, o programa, kuri organizuoja invokacijas kompiliatorių 17 00:00:58,170 --> 00:01:01,660 kodo failus, kad viskas susitvarko rengiami tinkamai tvarka 18 00:01:01,660 --> 00:01:08,280 tinkamu būdu nuo kompiliatoriaus vėliavėles gali gauti rūšies sudėtinga, kaip matysime. 19 00:01:08,280 --> 00:01:12,610 Tai ypač naudinga, kai dirbate su dideliais projektais, su daug kodo failus 20 00:01:12,610 --> 00:01:14,630 ir daug įvairių bibliotekos. 21 00:01:14,630 --> 00:01:19,450 Bet tai taip pat malonu jį naudoti, kai jūs tik viename faile. 22 00:01:19,450 --> 00:01:22,610 Taigi, galime sudaryti šį "Hello, World!" Programą naudojantis padaryti. 23 00:01:22,610 --> 00:01:28,220 Mano kodo failo vardas yra hello.c, todėl aš make Apie 24 00:01:28,220 --> 00:01:31,680 ir pasinaudos savo numatytąjį diegimą, siekiant sudaryti. 25 00:01:31,680 --> 00:01:37,640 >> Darant prielaidą, kad viskas vyks gerai, aš galiu naudoti ls komandą į sąrašą visus failus į katalogą, 26 00:01:37,640 --> 00:01:40,540 ir aš turiu pamatyti naują failą pavadinimu "Hello". 27 00:01:40,540 --> 00:01:43,380 Šis failas yra vadinamas "atliekamo" 28 00:01:43,380 --> 00:01:47,160 ir jis yra dvejetainiu formatu, kad kompiuteris gali suprasti. 29 00:01:47,160 --> 00:01:51,370 Jei mes atidaryti jį, mes galime pamatyti keletą simbolių, kad mes galime suprasti, 30 00:01:51,370 --> 00:01:54,810 tačiau didžiąja dalimi tai tik Mumbo-Jumbo krūva. 31 00:01:54,810 --> 00:02:00,920 Tačiau galiu paleisti šį failą ir žiūrėti spausdinti "Hello, world!" vėl ir vėl. 32 00:02:00,920 --> 00:02:03,420 >> Oh, įspūdžių! 33 00:02:03,420 --> 00:02:06,650 Taigi, grįžkime šiek tiek mūsų make komandai ir pamatyti, kas iš tikrųjų atsitiko 34 00:02:06,650 --> 00:02:09,580 siekiant gaminti vykdomąjį failą. 35 00:02:09,580 --> 00:02:12,690 Galite matyti, kad kai išbėgau padaryti, tai atspausdinti šią eilutę 36 00:02:12,690 --> 00:02:16,430  Apsukite metalinis garsas "pradedant ir baigiant" labas ". 37 00:02:16,430 --> 00:02:21,770 Tai remtis sudarytojas - šiuo atveju, vienas vadinamas "Apsukite metalinis garsas" 38 00:02:21,770 --> 00:02:27,720 numatytųjų vėliavas ar galimybes, siekiant gaminti mūsų vykdomąjį krūva. 39 00:02:27,720 --> 00:02:31,380 >> Apsukite metalinis garsas yra vienas iš C kompiliatorių, ten pasaulyje. 40 00:02:31,380 --> 00:02:34,050 Galbūt girdėjote ar naudojami kitų tie, 41 00:02:34,050 --> 00:02:38,260 ypač vienas vadinamas "gcc", tai yra itin dažnas. 42 00:02:38,260 --> 00:02:42,160 Mes pasirinkome naudoti Apsukite metalinis garsas CS50, nes mes manome, kad tai daro tikrai gerą darbą 43 00:02:42,160 --> 00:02:45,220 suteikti naudingų įspėjimai ir klaidų pranešimai 44 00:02:45,220 --> 00:02:48,480 ir dėl to, naudojant jį yra tikrai panašus į naudojant gcc, 45 00:02:48,480 --> 00:02:52,100 todėl jūs galite labai lengvai pereiti tarp dviejų. 46 00:02:52,100 --> 00:02:56,050 >> Kai padaryti bėgo Apsukite metalinis garsas, jis bėgo jis su visa krūva galimybių. 47 00:02:56,050 --> 00:02:59,360 Tačiau tai nėra būtina naudoti visas iš šių variantų 48 00:02:59,360 --> 00:03:03,090  tiesiog sudaryti vieną C kodo failą. 49 00:03:03,090 --> 00:03:07,540 Viskas, ką reikia padaryti, yra naudoti Apsukite metalinis garsas hello.c. 50 00:03:07,540 --> 00:03:12,430 Vėlgi, jei viskas eisis gerai, tai sukuria vykdomąjį failą. 51 00:03:12,430 --> 00:03:19,670 Tačiau, jei aš pabandyti paleisti. / Sveiki, aš gausiu klaida sakydamas, kad nėra tokio failo ar katalogo. 52 00:03:19,670 --> 00:03:20,910 Kas atsitiko? 53 00:03:20,910 --> 00:03:25,030 Apsukite metalinis garsas numatytuosius pavadinimus vykdomąjį a.out 54 00:03:25,030 --> 00:03:28,640 kurį mes pamatyti, jei mes sąrašą katalogą su ls. 55 00:03:28,640 --> 00:03:34,210 Šį failą, galime paleisti, ir ji taip pat spausdinti iš "hello, pasaulio!" , kaip numatyta. 56 00:03:34,210 --> 00:03:36,660 >> , Jei norime pervadinti vykdomąjį, 57 00:03:36,660 --> 00:03:38,900 mes galime naudoti komandą Perkelti, tai padaryti, 58 00:03:38,900 --> 00:03:43,040 tačiau didžiąją laiko dalį mes tiesiog norime Apsukite metalinis garsas padaryti tinkamą vardų mums. 59 00:03:43,040 --> 00:03:46,280 Mes galime tai padaryti su Ö vėliavos. 60 00:03:46,280 --> 00:03:50,160 , Jei aš paleisti Apsukite metalinis garsas hello.c-O labas, 61 00:03:50,160 --> 00:03:53,100 tada aš gausiu vykdomąjį failą, pavadintą "labas". 62 00:03:53,100 --> 00:03:58,080 -O variantas yra super dažnas, todėl tikėtis, matyti ir naudoti daug. 63 00:03:58,080 --> 00:04:02,670 Kitą Apsukite metalinis garsas variantų, kad jūs pamatysite daug prasideda-W. 64 00:04:02,670 --> 00:04:06,800 Šios galimybės kontroliuoti, kokių rūšių įspėjimai Apsukite metalinis garsas suteikia jums apie savo kodą. 65 00:04:06,800 --> 00:04:12,060 Pavyzdžiui, Apsukite metalinis garsas gali įspėti jus, jei jūs paskelbti kintamąjį, kad niekada naudojamas. 66 00:04:12,060 --> 00:04:15,580 , Jei aš įdėti int kintamasis vadinamas x hello.c 67 00:04:15,580 --> 00:04:22,520 ir tada sudaryti Apsukite metalinis garsas Wunused kintamųjų hello.c-o Apie 68 00:04:22,520 --> 00:04:26,270 Apsukite metalinis garsas įspėja man apie šios nenaudojamos kintamąjį mano kodas. 69 00:04:26,270 --> 00:04:28,800 >> Dabar yra įvairių tipų įspėjimo toną, 70 00:04:28,800 --> 00:04:32,920 ir tai būtų nemalonus, į sąrašą juos visus, kai paleidžiate Apsukite metalinis garsas. 71 00:04:32,920 --> 00:04:38,570 Vietoj to, yra spartusis galimybė paversti juos visus ant sienos. 72 00:04:38,570 --> 00:04:42,020 Mes tai įjungtas pagal nutylėjimą, kai paleidžiate, kad į prietaisą, 73 00:04:42,020 --> 00:04:45,970 todėl jūs gausite visų įspėjimų, kad Apsukite metalinis garsas gali suteikti jums apie savo kodą. 74 00:04:45,970 --> 00:04:50,620 Apskritai, jūsų kodas komponavimo įspėjimus nėra geras dalykas, 75 00:04:50,620 --> 00:04:55,160 ir mes tikėtis programas, kad jūs rašyti CS50 būti įspėjimas. 76 00:04:55,160 --> 00:04:59,290 Tačiau, kaip matote, Apsukite metalinis garsas bus vis dar gamina vykdomąjį failą 77 00:04:59,290 --> 00:05:02,940 net jei yra įspėjimas rengimo proceso metu. 78 00:05:02,940 --> 00:05:07,200 Tačiau mes galime priversti Apsukite metalinis garsas sustabdyti rengimo ir gaminti klaidą 79 00:05:07,200 --> 00:05:10,440 jei ji patiria kažką vertą įspėjimas kode. 80 00:05:10,440 --> 00:05:14,000 Mes tai darome su Werror galimybe. 81 00:05:14,000 --> 00:05:18,830 >> Dabar, jei aš kompiliuoti savo hello.c failą, nepanaudotos int kintamasis X, 82 00:05:18,830 --> 00:05:21,190 Aš ne gauti vykdomąjį failą. 83 00:05:21,190 --> 00:05:23,880 Dabar, aš negaliu ignoruoti komponavimo įspėjimus. 84 00:05:23,880 --> 00:05:25,900 Man reikia eiti, nustatyti savo kodą. 85 00:05:25,900 --> 00:05:30,030 Kita svarbi galimybė yra-ggdb. 86 00:05:30,030 --> 00:05:33,640 Tai leidžia specialią derinimo informacijos vykdomąjį failą, 87 00:05:33,640 --> 00:05:37,820 , kad galėčiau paleisti Debugger, gdb, jei ji sugenda. 88 00:05:37,820 --> 00:05:42,080 Be Pasirinkus šią galimybę, aš negaliu prieiti prie daug mano laidos informacijos per gdb, 89 00:05:42,080 --> 00:05:44,660 kaip kintamųjų ir funkcijų pavadinimus, 90 00:05:44,660 --> 00:05:48,410 todėl svarbu įtraukti ggdb, taip pat. 91 00:05:48,410 --> 00:05:53,120 Kai paleidžiate, kad ant prietaiso, ši galimybė taip pat yra įtrauktas pagal nutylėjimą. 92 00:05:53,120 --> 00:05:56,820 >> Galutinis variantas, kad svarbu žinoti, apie tai-l, 93 00:05:56,820 --> 00:05:59,320 kuris yra naudojamas susieti bibliotekas į kodą. 94 00:05:59,320 --> 00:06:04,190 Pavyzdžiui, jei norite naudoti iš CS50 bibliotekos funkcijas, pavyzdžiui, GetString 95 00:06:04,190 --> 00:06:09,200 jums reikia padaryti, tikrai, kad ne tik jums # include bibliotekos antraštės faile, CS50.h, 96 00:06:09,200 --> 00:06:11,350 savo C kodo failą 97 00:06:11,350 --> 00:06:15,250 bet taip pat, kad jūs naudojate-lcs50, rengdama 98 00:06:15,250 --> 00:06:19,370 kad įgyvendinant bibliotekos yra susijęs su jūsų programa. 99 00:06:19,370 --> 00:06:24,300 Sutikime pakeisti Hello World programa greitai vartotojo vardą su GetString funkcija 100 00:06:24,300 --> 00:06:27,740 ir tada naudoti pavadinimą mūsų Hello eilutę. 101 00:06:27,740 --> 00:06:33,190 >> Dabar, jei mes stengiamės sudaryti šią programą, o naudojant-lcs50, 102 00:06:33,190 --> 00:06:36,790 mes gauname apie neapibr ÷ žtas atsižvelgiant į GetString klaidą. 103 00:06:36,790 --> 00:06:43,580 Uh oh! Leiskite pridėti-lcs50, ir dabar viskas veikia tik bauda. 104 00:06:43,580 --> 00:06:49,510 >> Vienas kabliuko yra tai, kad daro skirtumą, kai į komandą norite rašyti lcs50. 105 00:06:49,510 --> 00:06:55,770 , Jei aš rašau jį, kol aš rašau hello.c, tada CS50 biblioteka yra pakrautas ir tvarkomi 106 00:06:55,770 --> 00:06:57,920 prieš mano išeitinis kodas. 107 00:06:57,920 --> 00:07:01,430 Taigi, tai, jei aš ne rašyti-lcs50 ne. 108 00:07:01,430 --> 00:07:05,580 Kaip nykščio taisykle, dažniausiai norėsite įdėti visus savo-l galimybių 109 00:07:05,580 --> 00:07:08,070 savo komandą. 110 00:07:08,070 --> 00:07:10,490 Taigi, dabar galime padėkite jį visi kartu. 111 00:07:10,490 --> 00:07:20,000 Apsukite metalinis garsas-ggdb-lenta-Werror hello.c-lcs50-O hello - 112 00:07:20,000 --> 00:07:21,860 tai daug daiktų. 113 00:07:21,860 --> 00:07:26,720 >> Štai kodėl padaryti, yra labai naudinga. Ji rūpinasi visa tai už jus. 114 00:07:26,720 --> 00:07:30,410 >> Taigi, dabar jūs turite gerą idėją, kas patenka į renkant kodą. 115 00:07:30,410 --> 00:07:33,470 Mano vardas yra Nate Hardison. Tai CS50. 116 00:07:33,470 --> 00:07:36,470 [CS50.TV]