Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen makedepend komutudur.
Program:
ADI
makedepend - makefiles'de bağımlılıklar yaratır
SİNOPSİS
bağımlı hale getirmek [ -Disim=def ] [ -Disim ] [ -Idahil ] [ -Ydahil ] [ -a ] [ -fmakefile
] [ -Dahil etmek dosya ] [ -onesne son eki ] [ -pnesne ön eki ] [ -sdizi ] [ -wgenişlik ] [ -v ] [ -m ]
[ -- diğer seçenekler -- ] Kaynak dosyası ...
TANIM
The bağımlı hale getirmek program her birini okur Kaynak dosyası sırayla ve bir C- gibi ayrıştırır
önişlemci, hepsini işliyor #Dahil etmek, #tanımlamak, #undef, #ifdef, #ifndef, #endif, #Eğer,
#elif ve #else hangi direktifleri doğru bir şekilde söyleyebilmesi için #Dahil etmek, direktifler
derlemede kullanılabilir. Herhangi #Dahil etmek, direktifler, diğer dosyalara sahip dosyalara başvurabilir.
#Dahil etmek yönergeler ve ayrıştırma bu dosyalarda da gerçekleşir.
Her dosya bir Kaynak dosyası doğrudan veya dolaylı olarak şunları içerir: bağımlı hale getirmek bir
bağımlılık. Bu bağımlılıklar daha sonra bir makefile öyle bir şekilde yapmak(1)
bir bağımlılık değiştiğinde hangi nesne dosyalarının yeniden derlenmesi gerektiğini bilecektir.
Varsayılan olarak, bağımlı hale getirmek çıktısını adlı dosyaya yerleştirir makefile eğer varsa,
aksi takdirde Dosya oluştur. ile alternatif bir makefile belirtilebilir. -f seçenek. ilk o
makefile satırı arar
# BU SATIRI SİLMEYİN -- bağımlı hale getirin.
veya ile sağlanan bir -s seçenek, bağımlılık çıktısı için sınırlayıcı olarak. bulursa
bunu, makefile sonuna kadar takip eden her şeyi silecek ve çıktıyı koyacaktır.
bu satırdan sonra. Onu bulamazsa, program dizeyi sonuna ekler.
makefile ve ardından çıktıyı yerleştirin. Her biri için Kaynak dosyası üzerinde görünen
Komut satırı, bağımlı hale getirmek formun makefile satırları koyar
kaynak dosya.o: dfile ...
Nerede kaynak dosya.o son eki ``.o'' ile değiştirilen komut satırındaki isimdir,
ve d dosyası içinde keşfedilen bir bağımlılıktır #Dahil etmek ayrıştırma sırasında yönerge Kaynak dosyası or
içerdiği dosyalardan biri.
ÖRNEK
Normalde, bağımlı hale getirmek makefile hedefinde kullanılacaktır, böylece `` make bağımlı'' yazmak
makefile için bağımlılıkları güncelleyin. Örneğin,
SRCS = dosya1.c dosya2.c ...
CFLAGS = -O -DHACK -I../foobar -xyz
bağlı olmak:
makedepend -- $(CFLAGS) -- $(SRCS)
SEÇENEKLER
Program, anlamadığı herhangi bir seçeneği yok sayar, böylece
senin için aynı argümanlar cc(1).
-Disim=def or -Disim
Tanımlamak. Bu, şuna bir tanım yerleştirir: isim in makedepend's sembol tablosu. Olmadan
=tanım sembol ``1'' olarak tanımlanır.
-Idahil
Dizini dahil et. Bu seçenek söyler bağımlı hale getirmek başına eklemek dahil listesine
karşılaştığında aranacak dizinler #Dahil etmek direktif. Varsayılan olarak,
bağımlı hale getirmek yalnızca standart içerme dizinlerini arar (genellikle / usr / include ve
muhtemelen derleyiciye bağımlı bir dizin).
-Ydahil
Tüm standart içerme dizinlerini belirtilen tek içerme ile değiştirin
dizin; atlayabilirsiniz dahil standart aramayı önlemek için
dizinleri içerir.
-a Bağımlılıkları değiştirmek yerine dosyanın sonuna ekleyin.
-fmakefile
Dosya adı. Bu, içinde alternatif bir makefile belirtmenize izin verir. bağımlı hale getirmek yapabilmek
çıktısını yerleştirin. Dosya adı olarak ``-'' belirtilmesi (örn. -F-) çıktıyı gönderir
mevcut bir dosyayı değiştirmek yerine standart çıktı.
-Dahil etmek dosya
Dosyayı girdi olarak işleyin ve çıktıyı işlemeden önce elde edilen tüm çıktıları dahil edin.
normal giriş dosyası. Bu, belirtilen dosyanın bir içerme olmasıyla aynı etkiye sahiptir.
normal girdi dosyasının ilk satırından önce görünen ifade.
-onesne son eki
Nesne dosyası soneki. Bazı sistemler, soneki bir şey olan nesne dosyalarına sahip olabilir.
``.o'' dışında. Bu seçenek, ```.b'' gibi başka bir sonek belirlemenizi sağlar.
ile -ob veya ``:obj'' ile -o:nesne ve benzeri.
-pnesne ön eki
Nesne dosyası öneki. Önek, nesne dosyasının adının başına eklenir. Bu
genellikle nesne dosyası için farklı bir dizin belirtmek için kullanılır. Varsayılan
boş dize.
-sdizi
Dize sınırlayıcı başlatılıyor. Bu seçenek, farklı bir dize belirtmenize izin verir.
bağımlı hale getirmek makefile içinde aramak için.
-wgenişlik
Hat genişliği. Normalde, bağımlı hale getirmek yazdığı her çıktı satırının
okunabilirlik açısından 78 karakterden daha geniş olmayacaktır. Bu seçenek şunları sağlar:
Bu genişliği değiştirmek için.
-v Ayrıntılı işlem. Bu seçenek neden olur bağımlı hale getirmek dahil edilen dosyaların listesini yaymak için
her giriş dosyası tarafından.
-m Çoklu dahil etme konusunda uyarın. Bu seçenek neden olur bağımlı hale getirmek eğer bir uyarı üretmek için
herhangi bir girdi dosyası birden fazla başka dosya içerir. Önceki sürümlerinde
bağımlı hale getirmek bu varsayılan davranıştı; varsayılan daha iyi olarak değiştirildi
için çoklu dahil etmeyi düşünmeyen C derleyicisinin davranışıyla eşleşir.
hata olsun. Bu seçenek, geriye dönük uyumluluk için ve
çoklu dahil etme ile ilgili hata ayıklama sorunları.
-- seçenekleri --
If bağımlı hale getirmek bağımsız değişken listesinde çift kısa çizgi (--) ile karşılaşırsa, ardından herhangi bir
ardından tanınmayan argüman sessizce yoksayılır; ikinci bir çift tire
bu özel muameleyi sona erdirir. Böylece, bağımlı hale getirmek güvenli bir şekilde yapılabilir
normalde bir CFLAGS'de bulunabilecek ezoterik derleyici argümanlarını görmezden gelin yapmak
makro (bkz. ÖRNEK yukarıdaki bölüm). Tüm seçenekler bağımlı hale getirmek tanır ve
çift tire çifti arasında görünen normal olarak işlenir.
ALGORITMASı
Bu programda kullanılan yaklaşım, herhangi bir programdan çok daha hızlı çalışmasını sağlar.
şimdiye kadar gördüğüm diğer ``bağımlılık üreteci'. Bu performansın merkezinde iki
varsayımlar: tek bir makefile tarafından derlenen tüm dosyaların kabaca
aynı -I ve -D seçenekler; ve tek bir dizindeki çoğu dosyanın büyük ölçüde
aynı dosyalar.
Bu varsayımlar göz önüne alındığında, bağımlı hale getirmek hepsiyle birlikte her makefile için bir kez çağrılmayı bekler
komut satırında görünen makefile tarafından tutulan kaynak dosyalar. ayrıştırır
her kaynak için bir dahili sembol tablosu sağlayarak, dosyayı tam olarak bir kez içerir.
Böylece komut satırındaki ilk dosya,
normal bir C önişlemcisinin aldığı süre. Ancak sonraki dosyalarda, eğer
önceden ayrıştırdığı bir içerme dosyasıyla karşılaşırsa, onu tekrar ayrıştırmaz.
Örneğin, iki dosya derlediğinizi hayal edin, dosya1.c ve dosya2.c, her biri içerir
başlık dosyası başlık.h, ve dosya başlık.h sırayla dosyaları içerir Def1.h ve
Def2.h. Komutu çalıştırdığınızda
makedepend dosya1.c dosya2.c
bağımlı hale getirmek ayrıştıracak dosya1.c ve sonuç olarak, başlık.h ve sonra Def1.h ve Def2.h. It
daha sonra bu dosyanın bağımlılıklarının olduğuna karar verir.
dosya1.o: başlık.h def1.h def2.h
Ama program ayrıştırıldığında dosya2.c ve onun da içerdiğini keşfeder başlık.h, o yapar
dosyayı ayrıştırmaz, yalnızca ekler başlık.h, Def1.h ve Def2.h listesine
için bağımlılıklar dosya2.o.
onworks.net hizmetlerini kullanarak makedepend'i çevrimiçi kullanın