2012-06-07 23 views

cevap

19

kullanın make -d veya make --debug[=flags]options: Normal işleme ek olarak

‘-d’

Baskı ayıklama bilgileri. Hata ayıklama bilgileri, hangi dosyaların yeniden değerlendirilmek üzere değerlendirildiğini, hangi dosya zamanlarının karşılaştırıldığını ve hangi sonuçların, hangi dosyaların gerçekte yeniden yapılması gerektiğini, örtülü kuralların göz önünde bulundurulduğu ve uygulandığı olduğunu belirtir. ne yapalım. -d seçeneği ‘--debug=a’'a eşdeğerdir (aşağıya bakın). Normal işleme ek olarak

‘--debug[=options]’

Baskı ayıklama bilgileri. Çeşitli seviyeler ve çıkış türleri seçilebilir. Hiçbir argüman olmadan, “temel” hata ayıklama seviyesini yazdırın. Olası argümanlar aşağıdadır; sadece ilk karakter dikkate alınır ve değerler virgül veya boşlukla ayrılmış olmalıdır.

a (tümü) Tüm hata ayıklama çıktıları etkinleştirildi. Bu, ‘-d’yi kullanmaya eşdeğerdir.

b (temel) Temel ayıklama baskılar inşa başarılı olup dışarı güncel olup olmadığı ve olduğu saptanmıştır her bir hedef. (Ayrıntılı)

v ‘basic’ üzerinde bir seviyesi; makefileların ayrıştırıldığı, yeniden oluşturulmasına gerek olmayan önkoşullar vb. gibi mesajlar içerir. Bu seçenek ayrıca ‘basic’ mesajlarını da etkinleştirir.

i (örtük) Her hedef için örtülü kural aramalarını açıklayan iletileri yazdırır. Bu seçenek ayrıca ‘basic’ mesajlarını da etkinleştirir.

j (işler) Belirli alt komutların çalıştırılmasıyla ilgili ayrıntıları veren iletileri yazdırır.

m (makefile) Varsayılan olarak, makefile'leri yeniden oluşturmaya çalışırken yukarıdaki iletiler etkin değildir. Bu seçenek maketleri yeniden oluştururken de iletileri etkinleştirir. ‘all’ seçeneğinin bu seçeneği etkinleştirdiğini unutmayın. Bu seçenek ayrıca ‘basic’ mesajlarını da etkinleştirir.

Diğer bir seçenek remake kullanmaktır - GNU bir yamalı versiyonu olduğu gelişmiş hata raporlama, yürütmesini izleme yeteneğini ve bir hata ayıklayıcı ekler olun.

2

ElectricMake bu durumda yardımcı olacağını çok sayıda bilgi ile yapı günlük bir XML işaretlenmiş versiyonunu üretebilir: hatta bu inşa sırasında çağrılan bütün komutlar için

  • tam komut satırları (Bu, @ değiştiricisiyle "sessiz" komutlar olarak işaretlendi.
  • Çağrılan komutların kaynağı (makefile ve satır numarası).
  • Komutların çalışma zamanı.
  • Yapıdaki hedefler arasındaki bağımlılık ilişkileri.
  • Yapılarda hedefler ve özyinelemeli yapılar arasındaki yapısal ilişki.
  • Dosyalar, yapı içinde çağrılan komutlarla okunur/yazılır.

Bu çıktı örneği verilmiştir:

<job id="J0824ab08" thread="5e72bb0" node="linbuild1-2" type="rule" name="../../i686_Linux/testmain/testmain.d" file="../config/rules.mak" line="109"> 
<command line="110"> 
<argv>echo Rebuilding '../../i686_Linux/testmain/testmain.d'</argv> 
<output src="prog">Rebuilding ../../i686_Linux/testmain/testmain.d 
</output> 
</command> 
<command line="111-114"> 
<argv>set -e; g++ -MM -w -DUSE_PROFILING -DUSE_LOGGING -DHAVE_UNIX -DHAVE_LINUX -I.. testmain.cpp \ 
     | sed 's!\(testmain\)\.o[ :]*!../../i686_Linux/testmain/\1.o '../../i686_Linux/testmain/testmain.d' : !g' \ 
     &gt; '../../i686_Linux/testmain/testmain.d'; \ 
     [ -s '../../i686_Linux/testmain/testmain.d' ] || touch '../../i686_Linux/testmain/testmain.d'</argv> 
</command> 
<opList> 
<op type="read" file="/home/ericm/src/testmain/testmain.cpp"/> 
<op type="read" file="/home/ericm/src/minidumper/ExceptionReport.h"/> 
<op type="read" file="/home/ericm/src/util/ECAssert.h"/> 
<op type="create" file="/home/ericm/i686_Linux/ecloud/testmain/testmain.d" found="0"/> 
</opList> 
<timing invoked="1.919926" completed="3.600491" node="linbuild1-2"/> 
<waitingJobs idList="J0824ae38"/> 
</job> 

How to Quickly Navigate an Unfamiliar Makefile bir makefile yolunuzu bulmak için açıklamalı inşa günlüğünü kullanarak bir örnek göstermektedir.

Data Mining ElectricAccelerator Annotation yapı için bir malzeme listesi oluşturmak için açıklamalı oluşturma günlüğünü nasıl kullanabileceğinizi gösterir.

ElectricMake GNU uyumludur, bu yüzden GNU marka ile çalışan makefile işlemleri yapabilir.

Yasal Uyarı: Ben ElectricAccelerator'ın mimar ve lider geliştiricisiyim.

+0

Hey Eric! Ben elektrik kullanıcıyım. Göndermeyi görmek güzel. Hata ayıklama günlükleri ve emir içine yerleştirilmiş seçenekler oldukça şaşırtıcıdır. Büyük ürün, tavsiye ederim. – ThePosey