Düzeltme: Hedef belirtilmedi ve makefile bulunamadı.



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

İster Ubuntu, Debian veya Red Hat ile çalışıyor olun, make yazan bir hata görebilirsiniz: *** Hedef belirtilmedi ve makefile bulunamadı. Dur. Bu bir bütün olarak GNU Make ile ilgili genel bir konu olduğundan, bunu sayısız Unix uygulamasında görebilirsiniz. Bu, mevcut çalışma dizininizde makefile veya Makefile adında bir dosya olmadığı anlamına gelir. Neyse ki, bu düzeltilmesi kolay bir hata.



Yöntem 1: Geçerli Dizinde Makefile Bulma

Çalıştırmayı denemek isteyebilirsiniz. Yapmak aynı hatanın size atılıp atılmadığını görmek için geçerli dizinde bir kez daha komut verin. Bu, özellikle yeni bir terminal penceresi açtıysanız ve doğru dizini bulmaya çalıştıysanız ya da cd komutunu GNU make'i en son çalıştırdığınızdan beri kullandıysanız önemlidir.



Varsayalım ki, çalıştırmayı deneyin. ls veya sana mevcut dizininizde hangi dosyaların olduğunu görmek için komut. Dizin ağacının sağ tarafında olmayabilirsiniz. Kök / dizininize veya ev ~ dizininize ait olan dizinleri gördüğünüzü fark ederseniz, cd komutunu çalıştırarak kendinizi doğru yere konumlandırmak isteyeceksiniz. Make komutunu çalıştırın.

Kendinizi olmanız beklenen yerden daha da uzakta bulma şansınız var. Örneğimizde / var / crash dizininden make çalıştırmayı denedik ve hiç çalışmadığını gördük. Bu konumdaki tek dosyalar ilgisiz kilitlenme raporlarından olduğu için buradan çalıştırılması beklenemez.

Büyük olasılıkla, make komutunuzu ana dizininizin içinde bir yerde bulunan bir dizinden çalıştırmak isteyeceksiniz. Örneğin, GNU nano'nun en son sürümünü kaynaktan oluşturuyorsanız, muhtemelen ~ / nano-2.9.6'da bulunan bir dizine sahip olursunuz ve bunu cd'ye koyabilir ve ardından make'i yeniden çalıştırabilirsiniz. Koşmayı denemek isteyebilirsin ls derlemeniz için dizinde bir makefile bulunduğundan emin olmak için bir kez daha yapmaya çalışın.

Öncelikle kurulumu yapılandırmanız gerekeceğini unutmayın. Configure komutu, GNU derleyicisinin gelişmesi için mükemmel ortamı yaratır. Doğru proje dizininde bile bir makefile bulamıyorsanız, ./yapılandır Hâlâ onun içindeyken, ardından Yapmak komut. Bu doğru bir şekilde derlenirse, projenizi şu şekilde kurabilirsiniz: sudo make install , ancak kök olarak herhangi bir şey oluşturmak istemediğinizi unutmayın, böylece sudo make'i veya kurulum dışında hiçbir şeyi çalıştırmak istemezsiniz.

Yöntem 2: Özel Makefile Belirtme

Bunun sorunu çözdüğünü varsayarsak, yapmanız gereken başka bir şey yoktur. Ancak, önceki yöntemin sorununuzu düzeltip düzeltmediğini dikkate almanız gereken iki özel kullanım durumu vardır. Bunların ikisi de elle yapılandırdığınız bir proje için kendi makefile dosyanızı yazmayı içerir.

-F seçeneğini kullanarak gerçek anlamda makefile dışında bir şey olarak adlandırılan özel bir makefile belirtebilirsiniz. Örneğin, makefile.bak adında bir yedek makefile dosyanız varsa, bunu çalıştırarak belirtebilirsiniz. make -f makefile.bak komut satırından. Makefile.bak'ı herhangi bir dosya adıyla değiştirebilirsiniz ve derleyici çalışırken özel veya eski bir makefile'daki hataları yok saymak istiyorsanız -i seçeneğini ekleyebilirsiniz. Yanlış bir şey varsa muhtemelen makefile dosyanızı düzenlemek isteyeceğiniz için bu genellikle önerilmez.

Çok yakından ilişkili diğer kullanım durumu, büyük / küçük harf duyarlılığının bir sorun olduğu bir durumu içerir. Aşağıdakiler, Unix iş yapış biçimindeki tüm ayrı dosyalardır:

  • Makefile
  • makefile
  • makeFile
  • MakeFile
  • MakefilE

Özel yapılandırılmış programlar, tek büyük harf kullanımına sahip bir makefile'ı tanıyamayabilir. Üzerinde çalıştığınız bir kodlama projesi için el yazısıyla yazdıysanız, GNU make'in onu bulabildiğinden emin olmak için -i seçeneğini kullanmanıza rağmen, muhtemelen onu makefile olarak yeniden adlandırmak isteyeceksiniz. Her şeyi doğru yazdıysanız, başlangıçta doğru ortamı oluşturmaya ve bu sorunu önlemeye zorlamak için kendi projenizden ./configure komutunu çalıştırabileceğinizi unutmayın.

3 dakika okundu