SORU
10 Mayıs 2011, Salı


Yapı ve Bunun projeleri oluşturmak için tercih edilen yolu nedir?

Ekosistem için yeni gelenler pek açık değil. * *0, &c.--temellerini anlıyorum geleneksel UNIX C Derleyiciler basit görünmek için yeterince ayna. Ama, tek bir dosyayı derleme seviyesinden, derleme basit ve temiz bir şekilde yönetmek için nasıl belirsizdir. Sorun Olası araçlar için arama değil, ve standart Bunun projeleri yapılanma inşası için toplumsal bir deneyim tarafından doğrulanan--ya da bir kaç Doğru (yeterli) bir Yol görüyorum.

Model benim durumumda mütevazı ama sıradan olmayan bir proje, Bunun saf ya da artı C, bir bağımlılık Bunun. Böyle bir proje:

  1. kaynak dosyaları içeren bir dizi
  2. standart kütüphaneler Linkleri
  3. bir veya daha fazla 3. parti kütüphaneler için bağlantılar
  4. isteğe bağlı olarak bir alt proje olarak C kitaplığı ve Bunun bir kapsayıcı içerir, bu da ayrı yönetilen ve 3 . parti bir kütüphane olarak dahil, (3) gibi olabilir

Birkaç alternatif araçlar öne çıkıyor:

  • Özel Makefiles en açık kaynak Bunun paketlerinde ortak bir standart gibi görünüyor, ama sinir bozucu derecede ayrıntılı ve karmaşık mütevazi C/C projeler için daha çok görünür. Görünüşte basit çok daha kötü hatta Bunun kütüphaneler katman daha büyük bir karmaşıklık için üstüne/automake, autoconf.
  • ocamlbuild görünür teklif modern, aerodinamik mekanizma için otomatik olarak oluşturur ile en az yapılandırma, ama değil iyi belgelenmiş için gelenler, ne de temsil örnekte tanıtım malzemelerinde Bunun ekosistem, ne de gözle görülür bir şekilde kullanılan herhangi birinin çocuklar tarafından yayımlanan çeşitli projeler Bunun bir göz için bir ilham kaynağı.
  • OASIS Kongre ve kütüphane kod katmanı üstüne diğer Paket Yöneticisi bina ve kütüphane, Cabal gibi destek sistemleri kurmak gibi görünüyor.

(Ben de gördüm OMake, görünür olmak, kendinden menkul "make " da içeren bir dizi standart kurallar için ortak dilleri de dahil olmak üzere Bunun, ve ocaml-make kızlık OCamlMakefile sağlayan bir şablon standart kuralları için GNU make.)

Bu herhangi yönetme Bunun yapılar tercih edilen, modern bir şekilde?

Nasıl proje dosyalarını en iyi yapılandırılmış.

Nasıl 3. parti kütüphane bağımlılıkları dahil ve yönetilen? Bunları yüklemek için sistem düzeyinde tercih, ya da orada bir proje için yerel olarak onları yönetmek için standart ve basit bir yoludur. Fazla olan projeler mümkün olduğunca kendine yeten bir model olarak kalmasını tercih ederim.

CEVAP
11 Mayıs 2011, ÇARŞAMBA


Seçeneklerin tam bir listesi var, ama bu soruya net bir cevap yoktur. Benim kişisel önerim de ocamlbuild kullanmaktır. Bu myocamlbuild.ml dosya here sağlanan iyi bir başlangıç. Kolayca çeşitli kitaplıkları üzerinde bağımlı projeleri derlemek için izin verir. C kütüphaneleri için bağlayıcı olması halinde işleyeceğini sanmıyorum, ama yardımcı olabilecek wiki ek örnekler var.

Bazı insanlar başka bir yapı araçtır henüz çünkü ocamlbuild için paket yöneticileri işleri bozan nesne. Ancak, kullanım kolaylığı ve resmi dağıtım dahil olması onu daha fazla ve daha yaygın hale getiriyor.

Ayrıca tüm bu atlamak ve oasis doğrudan kullanabilirsiniz. Çok yeni ve kararlı bir sürüm henüz ilan edilmedi, ama çok kullanışlı. Bu myocamlbuild oluşturur.sizin için otomatik olarak ml. Bu muhtemelen çok yakın gelecekte gitmek için yol, eğer değil zaten. Ayrıca, oasis kullanarak, hemen oasis-db, geliştirme aşamasında olduğunu Bunun için CPAN gibi bir sistemin yararı olacaktır.

Kitaplıkları yönetme konusunda cevap ocamlfind. Eğer varsa, Bunun birden çok örneği, otomatik olarak kütüphaneler için tüm başvurular neden olur ocamlfind uygun kopya, belirli bir örnek için şu arayabilir yüklü varsa, kullanmak varsayarak sistematik olarak tüm kütüphaneler için ocamlfind. Ben şu anda Allahım, Bunun ve kitaplıkları yüklemek için kullanın. Ocamlfind kullanır ve hiçbir sorun, Bunun birden çok örneği yüklü olması gerekiyor.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Canceriansoul

    Canceriansou

    15 Ocak 2011
  • Gan Eden Productions

    Gan Eden Pro

    11 HAZİRAN 2011
  • HowcastTechGadgets

    HowcastTechG

    22 EYLÜL 2010