İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

makepp_build_algorithm - Bulutta Çevrimiçi

Makepp_build_algorithm'i Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında çalıştırın

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 makepp_build_algorithm komutudur.

Program:

ADI


makepp_build_algorithm -- makepp bir makefile dosyasını nasıl çalıştırır

TANIM


Makepp'in içindekiler, standart Unix'in yapısından temel açılardan farklıdır. Bu sayfa
farklı felsefeyi ayrıntılı olarak açıklar.

Geri vs ileri sonuç
Makepp, standart Unix markasının tersi yönde çalışır. Geleneksel Unix yapımı
oluşturması için bir hedef verilir ve ardından içindeki karakterlerle eşleşen bir kural bulur.
hedef dosya adı. Hedef, kuralın bağımlılıklarından herhangi birinden daha eskiyse, o zaman
yeniden inşa edildi.

Örneğin, şu kalıp kuralını göz önünde bulundurun:

%.o: %.cxx
$(CXX) $(CXXFLAGS) -c $(girdi) -o $(çıktı)

make, "xyz.o" adında bir dosya yapması gerektiğini fark ettiğinde, kendi listesini arar.
"xyz.o" ifadesinin "%.o" kalıbıyla eşleştiğini görene kadar kalıp kuralları
bu kural.

Makepp ters yönde çalışır. İlk önce muhtemelen yapabileceği tüm dosyaları hesaplar.
bağımlılık dosya adlarındaki karakterlerle eşleşen kurallar uygulayarak oluşturun. Sonra ne zaman
bir dosya oluşturması gerekiyor, bildiği dosyalardan biri olup olmadığına bakıyor
nasıl inşa edilir. Bilinen dosyaların listesi, mutlak dosya adına göre saklanır.

makepp yukarıdaki kalıp kuralıyla karşılaştığında, dizindeki tüm dosyaları arar.
"%.cxx" kalıbıyla (yani, "*.cxx") eşleşen. Bu dosyaların her biri için, daha sonra hatırlar
karşılık gelen ".o" dosyasını üretebilir. Daha sonra makepp bunu keşfederse
mevcut olmayan başka bir ".cxx" dosyası oluşturabilir, bu kural da uygulanacaktır
ve ilgili ".o" dosyası işaretlenecektir.

Bu biraz verimsiz görünebilir, ancak çoğu durumda o kadar yavaş olmadığı ortaya çıkıyor,
ve oluşturulabilecek hemen hemen tüm dosyaların aslında oluşturulmuş olduğu genellikle doğrudur.
Ve oluşturulabilecek dosyaların tam listesini bilmenin çeşitli avantajları vardır:

· Joker karakterler, henüz var olmayan ancak oluşturulabilen dosyalarla eşleşebilir.

· Otomatik bağımlılık tarayıcı tarafından algılanan başlık dosyalarında
varolmaya; makepp nerede olacaklarını biliyor. (Bu soruna yönelik diğer çoğu çözüm
henüz mevcut olmayan herhangi bir başlığın geçerli dizinde olduğunu varsayalım.)

· Depoları uygulamak çok daha kolaydır çünkü makepp hangi dosyaları önceden bilir
yapabilir. (Ayrıntılar için makepp_repositories'e bakın.)

· Hangi dosyaların oluşturulabileceğini kolayca belirlemek mümkündür (bkz.
"$(only_targets )" işlevi.

· Makepp'in "$(infer_objects)" işlevi, nesnelerin ne olduğunu bilerek büyük ölçüde basitleştirilmiştir.
kullanılabilir.

dosyalar vs metinsel desen
Makepp, derleme komutlarını bir hedef dosyayla ilişkilendirir, bir metin kalıbıyla değil.
dosya adı. Bu nedenle aynı dosya için farklı isimlerle karıştırılmaz. Böylece, için
örneğin, makepp "./xyz" ve "xyz" dosyalarının aynı dosya olduğunu bilir, oysa diğer makepp
yardımcı programlar olmayabilir.

Bu özellikle önemlidir çünkü (standart markanın aksine) makepp makefile'leri yükler
farklı dizinlerden. Makefile dosyalarının nispeten bağımsız olması için,
üst düzey bir makefile özel bir konum verilmez, her makefile tüm dosyalara atıfta bulunur
kendi dizinine göre. Bu nedenle, alt dizinden bir makefile yüklerseniz
"other_stuff" ve bu makefile "../xyz" anlamına geliyorsa, makepp bunun bir kez daha farkına varacaktır.
yukarıda belirtilen aynı dosya. (Ayrıca yumuşak bağlantılı dizinle karıştırılmayacaktır.
isimler.)

Saklanan inşa etmek bilgi
Makepp, oluşturduğu her dosya hakkında yalnızca tarihin ötesinde çok daha fazla bilgi depolar.
damga (standartın umursadığı tek şey budur). Bu bilgiler şunları içerir:

· Bu dosyanın son derlemedeki imzası, bu nedenle dosyanın kendisinin olup olmadığını biliyoruz.
değişti.

· Dahil edilen dosyalar ve çıkarılan diğer dosyalar dahil olmak üzere her bir bağımlılık dosyasının adları
otomatik olarak. Bu liste değişirse makepp, yeniden oluşturulması gerektiğini varsayar.

· Her bağımlılığın imzası. Bu şekilde makepp, yalnızca
bağımlılıklar hedeften daha yenidir, ancak değiştiklerinde. Bu da yapar
yerine kriptografik sağlama toplamları gibi başka tür imzalar kullanmak mümkündür.
dosya tarihinden daha

· Tüm derleme komutu (ve cwd'si). Bu şekilde build komutunu değiştirirseniz
(örneğin, derleyici seçeneklerini değiştirin), makepp, dosyalar silinse bile yeniden oluşturmayı bilir.
kendileri değişmedi.

· Mimarlık. Programınızı Linux'ta derlediyseniz ve ardından
Solaris, makepp her şeyi yeniden derlemeyi otomatik olarak bilir.

Makepp, dokunduğu her dizinde ".makepp" adında bir alt dizin oluşturur. NS
bir dosya için bilgi oluşturma Dosya bir dizinde saklanır .makepp/dosya adı. Eğer
bu alt dizini siler veya dosyaları değiştirirseniz, makepp etkilenen tüm dosyaları yeniden oluşturacaktır.

üstü kapalı yükleme
makepp bir dizinde bir hedef oluşturmaya çalışıyorsa ve henüz bunun için bir kuralı yoksa,
veya bir dizindeki joker karakterle eşleşen dosyaları arıyorsa, buna bakacaktır.
makefile olup olmadığını görmek için dizin. Eğer öyleyse, makefile yüklenecek
otomatik olarak.

Bu, genellikle makepp'e nerede bulacağını açıkça söylemek zorunda olmadığınız anlamına gelir.
makefiles--tüm yapmanız gereken başka bir dizindeki bir dosyaya referans vermektir ve makepp
nasıl inşa edileceğini otomatik olarak bulur.

Örtülü yükleme, yalnızca dizin sizin için yazılabilirse gerçekleşir. Böylece isterseniz
makepp'in asla değişmeyecek bir sürü şey inşa etmeye çalışmasını önleyin, sadece
dizin salt okunur.

Bir ağacın altındaki bir ağaçtaysanız, örtük yükleme gerçekleşmez. RootMakepp dosyası(.mk) ve
diğer makefile o ağacın dışında. Bunu bir kez istersen, bir verebilirsin
"--do-build=/" seçeneği, ağacın dışındaki her şeyi oluşturulabilir kılmak için makepp'e. Eğer sen
her zaman bunu istiyorsanız, ağacın içinde bir yere bir "load_makefile" ifadesi koyabilirsiniz.
açıkça ağaca bağlayın.

Örtük yükleme yolunuza çıkarsa (yani, makepp çok fazla makefile yükler ve israf eder)
zaman, yoksa gerçekten onun, bölümde açıklanan tüm şeyleri yeniden oluşturmaya çalışmasını istemezsiniz.
makefiles), "--noimplicit_load" komutunu kullanarak tüm dizinler için kapatabilirsiniz.
satır seçeneği veya "no_implicit_load" kullanarak seçili dizinler için kapatabilirsiniz.
makefile'nizdeki ifade.

onworks.net hizmetlerini kullanarak makepp_build_algorithm çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

  • 1
    Phaser
    Phaser
    Phaser hızlı, ücretsiz ve eğlenceli bir açık
    sunan kaynak HTML5 oyun çerçevesi
    WebGL ve Canvas oluşturma
    masaüstü ve mobil web tarayıcıları. Oyunlar
    ortak olabilir...
    Phaser'ı indirin
  • 2
    VASAL Motor
    VASAL Motor
    VASSAL, oluşturmak için bir oyun motorudur.
    geleneksel tahtanın elektronik versiyonları
    ve kart oyunları. için destek sağlar
    oyun parçası oluşturma ve etkileşim,
    ve ...
    VASSAL Motorunu İndirin
  • 3
    OpenPDF - iText çatalı
    OpenPDF - iText çatalı
    OpenPDF oluşturmak için bir Java kütüphanesidir.
    ve PDF dosyalarını bir LGPL ile düzenlemek ve
    MPL açık kaynak lisansı. OpenPDF
    LGPL/MPL iText'in açık kaynaklı halefi,
    var ...
    OpenPDF'i İndirin - iText Çatalı
  • 4
    SAGA CBS
    SAGA CBS
    SAGA - Otomatik Sistem
    Yerbilimsel Analizler - Bir Coğrafidir
    Bilgi Sistemi (GIS) yazılımı ile
    coğrafi veriler için muazzam yetenekler
    işleme ve ana...
    SAGA GIS'i indirin
  • 5
    Java/JTOpen için Araç Kutusu
    Java/JTOpen için Araç Kutusu
    IBM Toolbox for Java / JTOpen, bir
    destekleyen Java sınıfları kütüphanesi
    istemci/sunucu ve internet programlama
    modelleri OS/400 çalıştıran bir sisteme,
    i5/OS veya...
    Java/JTOpen için Toolbox'ı indirin
  • 6
    d3.js
    d3.js
    D3.js (veya Veriye Dayalı Belgeler için D3)
    sağlayan bir JavaScript kitaplığıdır.
    dinamik, etkileşimli veriler üretmek için
    web tarayıcılarında görselleştirmeler. D3 ile
    sen...
    D3.js'yi indirin
  • Daha fazla »

Linux komutları

Ad