Oppaat

Korjaus: Kohteita ei ole määritetty eikä tiedostoa löydetty.

Riippumatta siitä, työskenteletkö Ubuntun, Debianin tai Red Hatin kanssa, saatat nähdä virheen, joka lukee make: *** Kohteita ei määritetty eikä makefileä löytynyt. Lopettaa. Koska tämä on yleinen asia, joka liittyy GNU Makeen kokonaisuutena, saatat nähdä sen lukemattomissa Unix-toteutuksissa. Tämä tarkoittaa, että nykyisessä työhakemistossasi ei ole tiedostoa nimeltä makefile tai Makefile. Onneksi se on helppo korjata.

Tapa 1: Makefile-tiedoston löytäminen nykyisestä hakemistosta

Voit halutessasi kokeilla tehdä komento vielä kerran nykyisessä hakemistossa nähdäksesi, heittyykö sama virhe sinulle. Tämä on erityisen tärkeää, jos olet avannut uuden pääteikkunan ja jo yrittänyt löytää oikean hakemiston tai jos olet käyttänyt cd-komentoa edellisen kerran, kun yritit ajaa GNU make -ohjelmaa.

Jos oletetaan, että se on, yritä suorittaa Ls tai ohj komento nähdäksesi, mitkä tiedostot ovat nykyisessä hakemistossa. Et ehkä ole hakemistopuun oikeassa reunassa. Jos huomaat, että näet hakemistoja, jotka kuuluvat juurihakemistoon tai koti ~ hakemistoon, sinun kannattaa suorittaa cd-komento sijoittamaan itsesi oikeaan paikkaan suorittamaan make-komento.

On mahdollista, että saatat löytää itsesi vielä kauemmas sinne, missä olet. Esimerkissämme yritimme suorittaa merkin / var / crash-hakemistosta ja huomasimme, että se ei toiminut ollenkaan. Sen ei voida odottaa suorittavan täältä, koska ainoat tiedostot tässä paikassa ovat etuyhteydettömistä kaatumisraporteista.

Olet todennäköisesti halunnut suorittaa make-komennon hakemistosta, joka sijaitsee jonnekin kotihakemistosi sisällä. Jos esimerkiksi rakennat uusinta versiota GNU nanosta lähteestä, sinulla todennäköisesti on hakemisto osoitteessa ~ / nano-2.9.6, johon voit cd: n ja sitten suorittaa uudestaan. Voit kokeilla juoksemista Ls ennen kuin yrität varmistaa, että hakemistossa on makefile, josta voit rakentaa.

Muista, että asennus on ensin määritettävä. Konfiguroi-komento luo täydellisen ympäristön GNU-kääntäjälle. Jos et löydä tiedostoa edes oikeasta projektihakemistosta, suorita sitten ./konfiguroi kun olet vielä sen sisällä, seuraa tehdä komento. Jos tämä kääntyy oikein, voit asentaa projektisi sudo tee asennus, mutta muista, että et halua rakentaa mitään juuriksi, joten et koskaan halua ajaa sudo make- tai muuta asennuksen ulkopuolella.

Tapa 2: Mukautetun tiedostotiedoston määrittäminen

Jos olet korjannut ongelman, sinun ei tarvitse tehdä mitään muuta. On kuitenkin kaksi erityistä käyttötapausta, jotka on otettava huomioon, jos edellinen menetelmä ei korjaa ongelmaa. Näihin molempiin liittyy oman makefileen kirjoittaminen projektille, jonka olet määrittänyt käsin.

Voit määrittää mukautetun tiedostotiedoston, jota kutsutaan muuksi kuin kirjaimellisesti makefileeksi, käyttämällä -f-vaihtoehtoa. Esimerkiksi, jos sinulla oli varmuuskopio makefile nimeltä makefile.bak, voit määrittää sen suorittamalla make -f makefile.bak komentoriviltä. Voit korvata makefile.bak-tiedoston millä tahansa tiedostonimellä ja sisällyttää -i -vaihtoehdon, jos haluat ohittaa virheet mukautetussa tai vanhentuneessa makefile-tiedostossa kääntäjän ollessa käynnissä. Tätä ei yleensä suositella, koska todennäköisesti haluat muokata tiedostoa, jos siinä on jotain vikaa.

Toinen hyvin läheisesti liittyvä käyttötapaus sisältää tilanteen, jossa asia on herkkyys kirjainkoon suhteen. Seuraavat ovat kaikki erillisiä tiedostoja Unix-liiketoimintatavalla:

  • Makefile
  • Makefile
  • makeFile
  • MakeFile
  • MakefilE

Mukautetut ohjelmat eivät välttämättä pysty tunnistamaan tiedostoa, jossa isot kirjaimet ovat parittomia. Jos olet kirjoittanut sen käsin työskentelemääsi koodausprojektia varten, haluat todennäköisesti nimetä sen uudelleen makefile-tiedostoksi, vaikka voit käyttää -i-vaihtoehtoa varmistaaksesi, että GNU make pystyy löytämään sen. Muista, että jos olet kirjoittanut kaiken oikein, voit silti ajaa ./configure omasta projektistasi pakottaaksesi sen luomaan oikean ympäristön ja välttämään tämän ongelman.

$config[zx-auto] not found$config[zx-overlay] not found