@, - ve +, Make'daki tarif çizgilerine önek olarak ne yapar?


172

GNU Makefile kılavuzunda bu öneklerden bahsedilmektedir .

.ONESHELL sağlanırsa, özel önek karakterleri ('@', '-' ve '+') için tarifin yalnızca ilk satırı kontrol edilir.

Bu önekler ne işe yarıyor ve nerelerden bahsediliyor?

Yanıtlar:


235

Etiketli komut satırları için make davranışını kontrol ederler:

  • @ yürütülen komutun normal 'yankısını' bastırır.

  • - , yürütülen komutun çıkış durumunu yoksay (normalde sıfır olmayan bir çıkış durumu derlemenin o kısmını durdurur).

  • +make -nkomutlar normal olarak yürütülmediğinde ' bu komutu ' (veya 'make -t' veya 'make -q') altında çalıştır anlamına gelir . GNU Marka kılavuzunun POSIX spesifikasyonuna makeve ayrıca §9.3'e bakınız .

+Gösterimde bir (POSIX standart) genelleme fiili bir komut hattı ihtiva eden, burada (standart olmayan) bir mekanizma ${MAKE}veya $(MAKE)altında yürütülür make -n.

( @Tartışılmıştır §5.2 ; GNU'yu elle yapmak -anlatılan §5.5 ve §5.7.1 kullanımından söz +).


41

@komut satırının konsola yankılanmasını engeller. Sen ile küresel yapabilir -sveya--keep-silent

-komut bir sebepten dolayı başarısız olsa bile devam etmesini söyler. Bunu -ibayrak (veya --ignore-errors) aracılığıyla global olarak yapabilirsiniz .

+Siz sormadan önce familar değildim. Söyleyebileceğim yakın olarak, etkisini geçersiz kılan -n, -tve -qtemelde aslında komutları çalıştırın değil markasını söyle hepsi. Yani +ön tarafta bir çizgi olan zaten çalışır.

Resmi Gnu Make kılavuzunu okursanız, bunların tümü Bölüm 5'te belirtilmiştir . "Komutlar" bölümü olan kılavuzun eski kopyasında, ama du jour terimi artık "tarifler" gibi görünüyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.