SORU
24 Kasım 2009, Salı


nasıl makefile cd komutu yazmak

örneğin benim makefile böyle bir şey var

all:
     cd some_directory

ama ben yazarken sadece cd some_directory 'echo komutu gibi gördüm

CEVAP
24 Kasım 2009, Salı


Aslında bu komut, some_directory ancak dizinin bu alt süreci bir kabuk içinde gerçekleştirilen değişiyor, çalıştığı ve ne yapmak ne de çalışıyorsun. kabuk etkiler.

Eğer some_directory, içinde daha fazla görevleri gerçekleştirmek için arıyorsanız noktalı virgül ekleyin ve diğer komutları da eklemek gerekir. Açıklık getirmek için kullandığınız herhangi bir yeni satır ters eğik çizgi ile kaçtı olmalı kuralı son olarak yorumlanır, onlar olarak karakterlerine kullanamazsınız.

Örneğin:

all:
        cd some_dir; echo "I'm in some_dir"; \
          gcc -Wall -o myTest myTest.c

Noktalı virgül, eğik çizgi ve bir yeni satır ekleme olsa bile her komut arasında gerekli olduğunu unutmayın. Bu tüm dize kabuk tarafından tek bir hat gibi ayrıştırılmış olması nedeniyle. Yorum gerektiğini kaydetti kullanmak 've' onlar sadece önceki komut başarılı olursa, idam anlamına gelen komutları, katılmak için.

all:
        cd some_dir && echo "I'm in some_dir" && \
          gcc -Wall -o myTest myTest.c

Aksi takdirde bu cd Her ne sebeple olursa olsun başarısız olması yanlış bir şey yok, olacak gibi yıkıcı çalışma, temizlik gibi yaparak çok önemli olduğunu özellikle.

Aramak için olsa da yaygın bir kullanım içine bakmak isteyebilirsiniz bir alt dizin oluşturur. Kural şu şekilde görünecektir cd kendini aramak zorunda değilsiniz, bu yüzden bunun için bir komut satırı seçeneği var

all:
        $(MAKE) -C some_dir all

some_dir içine değiştirmek ve hedef ile orada Makefile yürütecek olan, "bütün". Bir en iyi uygulama, kullanımı $(MAKE) yerine arama make direkt olarak ilgileneceğim için arama sağ olun örnek (eğer, örneğin, kullanmak için bir özel sürümü için inşa ortamı) olarak bulunur biraz farklı davranış koşarak kullanarak bazı anahtar gibi -t.

Kayıt için, yapmakher zamanyankı eğer hiçbir çıkış varsa bile, gördüğünüz hangi yürütür komutu açıkça bastırılmış sürece),.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • dirkgently1

    dirkgently1

    13 NİSAN 2006
  • Need for Speed

    Need for Spe

    8 ŞUBAT 2006
  • pleated-jeans

    pleated-jean

    6 HAZİRAN 2013