linux/freebsd için make ürününe alternatifler nelerdir?Linux/freebsd için alternatifler mi?
cevap
SCons'u beğeniyorum. Her derleme betiğinin (SConstruct
dosya) sözdizimsel olarak geçerli bir Python programı olduğu şekilde yapılandırılmıştır. Bu nedenle, ihtiyacınız varsa derleme komut dosyasına rastgele Python mantığı oluşturabilirsiniz.
Ayrıca make
'dan çok daha hızlıdır ve birçok bağımlılık türünü otomatik olarak hesaplar.
Automake: Birçok linux uygulaması dağılımları kullanılan ama biraz Makefile'da daha fazla iş ama daha iyi sonuçlar http://www.gnu.org/software/automake/ verir p
http://www.openismus.com/documents/linux/automake/automake.shtml < - automake ve autoconf
Autotools 'make' için gerçekten bir alternatif değil, çünkü sonuçta GNUMakefiles üretiyor. Yani sadece arcane makefile sözdizimi yerine, şimdi de oldukça eski moda kabuk-betikleri ve kek üzerine krema olarak 'm4' makroları var! Başka bir deyişle, artık * üç * probleminiz var. –
cmake ve imake'un her ikisi de derleme yardımcı programlarıdır. Cmake aynı zamanda çapraz platformdur ve Windows'ta da kullanılabilir.
Java'ya girdiyseniz, ANT Java'ya (aslında Make ile güzelce oynatılamayan) yönelik bir oluşturma aracıdır.
Troll tech, QT oluşturmak için kullandıkları qmake adlı bir araç hazırlayın. Makatlar üreterek çalışır - Troll, platformlar arası bir kurguyu desteklemek için bir araca ihtiyaç duyuyordu - dolayısıyla başka bir yardımcı programa ihtiyacınız var.
Trolltech, qmake ve cmake'ye taşındı, ben daha sonra eski yerine onun yerine giderdim. CMake, çeşitli IDE'ler için IDE projeleri kadar makefiles üretir. –
@dribeas bunu doğruladı, QT ve ben bütün KDE projesinin CMake'e taşındığına inanıyorum. –
Neden cmake ve imake aynı cümle içinde söz emin değilim ... – JesperE
Tamamen farklı bir şey arıyorsanız, Ant var. Kendime bunun o ilgilenmiyorum ama otomatik bağımlılık analizi ile, ++
OMake C/C için bir yapı araçtır (vb unix kabuk üzerinde hiçbir güven,) OCaml ve LaTeX bazı taşınabilirlik avantajı sunuyor . Birden çok dizin üzerinden kolayca proje oluşturabilir ve zaman damgası yerine MD5 toplamına dayalı değişiklikler bulur. Ayrıca, bir dosya değiştirildiğinde, projenizi inşa etmek için arka planda çalıştırılabileceği bir moda sahiptir. Genel olarak, yapmaktan çok ortak projeler (C/C++ veya OCaml programları ve kitaplıkları) oluşturmak için daha az kod alır. Daha büyük projeler için denemedim.
OCaml'de programlamak istiyorsanız, bu araç OCaml bağlayıcısının, bağımlılık sırasındaki komut satırında derlenmiş modüllerin görüntülenmesini gerektirdiğinden ve bu değişikliklerin önemsiz olmadığında her seferinde bu siparişi belirlediğinden bu aracın gerçekten yararlı olduğunu unutmayın.
İlk sorum, izleyici nedir? Bu, sadece ekibinizin inşa edeceği şirket içi yazılım oluşturmak için mi? Öyleyse, zaten sunulan seçeneklerden bazılarını keşfedin. Bu, başkalarının inşa edeceği bir şeyse, ya yap-yap ya da makefile yaratan ve bunları taşıyan bir araç kullan. Linux ve diğer unix platformları için autoconf ve automake kullanıyoruz. Benim düşünceme göre, yapılandırmaktan başka bir şey yapmak için çok iyi bir nedene ihtiyacın var; Yapmak; yükleme yap. Boost kendi araçlarına sahiptir (Jam'in değiştirilmiş bir versiyonu) ve alışılmadık bir makineyi derlemek için her zaman ihtiyacım olan her şey beni rahatsız ediyor.
Make
yerine Cons
(Greg Hewgill'in yanıtında SCons
ile karıştırılmamalıdır) kullanan bazı kodları miras üzerinde çalışıyorum.
Cons
, Perl dilinde yazıldığı gibi, SCons
, Python'da yazılmıştır. Bağımlılıkları otomatik olarak yönetir ve karmaşık yapı dizilerini işlemek için yapı kodunun içindeki herhangi bir Perl kodunu kullanabilirsiniz.
Ana dezavantaj (ve projemin kullandığı için üzgünüm ana nedeni) Cons
'un make -j
biçiminde paralel yapıda olmamasıdır. Cons
birbirine bağımlı olmayan bir dizi dosya derlerseniz, bunları birer birer derler, make -j
ise bunları paralel olarak derler, bu da makinenizde birden çok çekirdek ve iş parçacığı varsa harikadır.
Ve maalesef Eksileri ölü bir proje gibi görünüyor; Son baktığımda şu anki gelişme yok. – JesperE
Bazı autotools tabanlı olanlar da dahil olmak üzere projelerim için CMake'i kullandım ve bunun işini çok iyi yaptığını söyleyebilirim. Çoğunlukla C/C++ çapraz platform projeleri için uygundur.
Başka kmake
olduğunu kurar çapraz platform için yapmak (kendi sözleriyle kbuild
bir parçası,:. kBuild karmaşık görevler için basit makefiles yazmak için bir makefile çerçevesidir). GNU make
'un geliştirilmiş bir sürümüdür. VirtualBox millet tarafından geliştirilmiştir. Windows, Linux, MacOS ve Solaris için VirtualBox Ürünlerini oluşturmak için kullanıyorlar. Oldukça taşınabilir! Ayrıntılar için http://svn.netlabs.org/kbuild adresine bakın.
WAF ilginç bir alternatiftir. Python ile yazılmış olan, inşa mantığınızı düz Python'da yazmanızı sağlar. Paralel + semi-auto-magic imza tabanlı bağımlılık izleme çalışmasını makul ölçüde iyi yapar. Sözde çapraz platform (yani Windows üzerinde nasıl yapılacağını bilir), ama bunu denemedim.
Oldukça sarp bir öğrenme eğrisi var, ama aynı zamanda işleme yardımcı olmak için "The WAF book" ile birlikte geliyor.
Bir süre önce bir yapı problemini çözmek için "waf" e bakmak zorunda kaldım. 'Wscript'den baktıktan sonra waf'ın kendisinin kodunu girmeliydim. Oldukça tuhaf görünüyor. Sadece eğlence için en son sürümde 'pep8' yazdım ve 6000 hata ve 25000 uyarısı verdim. Adil olmak gerekirse, yeni baktığım son sürümde, yazarlar çok fazla belge eklediler. –
- 1. Alternatifler
- 2. Popen/pclose için alternatifler?
- 3. Pencerelerde Pow için alternatifler?
- 4. GNU farkları için alternatifler?
- 5. Alternatifler ArcGIS Server için
- 6. Symfony2'deGranted için alternatifler
- 7. DDE hala önemli mi? Alternatifler hangileridir?
- 8. ZF2 için Zend Registry'ye alternatifler
- 9. java.util.Vektör - alternatifler
- 10. Haritalara alternatifler
- 11. Opsiyon tipi alternatifler C#
- 12. Google App Engine'de SciPy çalıştırmak için alternatifler?
- 13. Apache'den DDLUtils'e Alternatifler
- 14. Üçlü operatör (alternatifler)
- 15. Java VM'ye alternatifler nelerdir?
- 16. Heroku'da dosya depolama - alternatifler?
- 17. Alternatifler ancak setFont
- 18. php kullanarak matematik denklemleri yapmak için eval() yöntemleri için alternatifler
- 19. Alternatifler kullanan bir Linux sisteminde JAVA_HOME için doğru yol nedir?
- 20. Alternatifler Runtime ve ProcessBuilder (Java)
- 21. Notepad ++ renkli baskı veya alternatifler
- 22. ortalaması (data.frame) geçersiz, alternatifler neler?
- 23. rspec ve shoulda - tamamlayıcı veya alternatifler?
- 24. HTML5 tuval oyunu performansına karşı alternatifler
- 25. Windows Azure PaaS (web rolü) için gerçek alternatifler?
- 26. Metin() bir arsaya metin eklemek için kullanılabilecek alternatifler
- 27. ∩ ve ∪ varlıkları için HTML'de alternatifler var mı?
- 28. Java Görev Denetimi için komut satırı tabanlı daemon? Alternatifler?
- 29. Çift - şu sitesine göre IEEE 754 alternatifler
- 30. sizeFromBannerContentSizeIdentifier iOS 6'da kullanımdan kaldırıldı, alternatifler?
CMake –
'u unutabiliyor musunuz? Yapmaktan daha mı hızlı? Hangi eski donanımlar çalışıyorsunuz? Son baktığımda, SCon'un ciddi performans sorunları var. Bunun dışında, SCons'u severim. – JesperE