52
A
回答
33
38
我與SCons取得了很好的成功。它是用Python構建的,構建腳本本身就是Python腳本,這賦予了大量的表現力。來自網站:
SCons是一個開源軟件構建工具 - 也就是下一代構建工具。可以將SCons看作是經典的
Make
實用程序的改進的跨平臺替代品,其集成功能類似於autoconf/automake
和編譯器緩存,如ccache
。總之,SCons是構建軟件的一種更簡單,更可靠,更快捷的方式。
2
我看過CMake,看起來像一個很好的選擇,除非你正在交叉編譯。如果你正在做本地編譯,你應該試試吧
1
在Mozilla中創建了一個Python版本 - pymake - 這大概支持跨平臺的使用。
18
1
對於從ANT或maven構建C/C++軟件,您可能會對terp感興趣。它包括一個可移植的C++編譯器任務,可在許多平臺上與許多C++編譯器一起工作。
43
我正在冒着被低估的機會,但是,我必須承認,遺憾的是沒有真正的自動工具替代品。 CMake,SCons,bjam都不錯,但是當涉及到認真的工作時......很明顯autotools是優越的,不是因爲CMake不能做同樣的事情,而是因爲它很難做到這一點。
例如,CMake的,最流行的替代自動工具,有以下缺點:
- 不支持的gettext的。當您需要管理大量翻譯和翻譯源代碼時,這可能是一個真正的問題。
- 不支持卸載目標。發現你不能卸載你安裝的程序是非常不愉快的。
- 沒有自動構建這兩個共享和靜態庫。
- 文檔是非常有限和壞。
依此類推。
還有很多其他的觀點。不幸的是,自動工具沒有真正的高質量替代品。另一方面,如果您在Visual Studio的Windows 和上開發,則不能使用自動工具,而需要選擇提供此類工具的CMake。
13
4
另一個汽車*替代 - mk-configure。可以找到文檔here
相關問題
- 1. db4o和替代品
- 2. applicationDidEnterBackground和applicationWillResignActive的替代品?
- 3. Iphone4和GPS的替代品
- 4. Sys.getTime()和Sys.getTimerResolution()的替代品?
- 5. 腳本中的autoconf替代路徑
- 6. @「」的替代品?
- 7. Crystal Report和替代品
- 8. Android HttpPost和HttpClient替代品
- 9. Dreamweaver和PHP(替代品)
- 10. Spring Web Flow和替代品
- 11. Gilead和RequestFactory替代品
- 12. 可以使用`Jam`作爲使用autoconf的GNU Make的替代品嗎?
- 13. ASIHTTP的最佳替代品,替代品或替代品用於下載隊列
- 14. Pieceable的替代品
- 15. NowJS的替代品
- 16. Flash的替代品?
- 17. RelativeLayout的替代品?
- 18. JMegahal的替代品
- 19. JodReports的替代品
- 20. Git的替代品?
- 21. YQL的替代品
- 22. window.scrollMaxY的替代品?
- 23. FMINCON的替代品
- 24. SuperSized的替代品
- 25. reCAPCTHA的替代品?
- 26. wx.lib.masked.NumCtrl的替代品
- 27. webistrano的替代品?
- 28. PathListBox的替代品
- 29. CKAN的替代品
- 30. SwaggerHub的替代品
熟悉m4是無關緊要的。因爲m4而針對autoconf爭論就像爭論C,因爲編譯器使用lex生成的詞法分析器,開發人員不理解lex。使用自動工具時,可以完全忽略m4 98%的時間。在剩下的2%中,你也可以忽略m4!通常,如果您發現自己遇到與m4相關的問題,那是因爲您正在做其他根本性錯誤。 – 2012-04-05 16:04:21
@WilliamPursell自從我問了這個問題後經過了幾年,我傾向於同意。但問題依然存在 - 使用它從根本上走向錯誤太容易了。而且,當你想要從配置中進行真正的粒度構建控制時,你最終打M4。除非我錯過了什麼? – 2012-04-06 07:28:38
@TimPost幾年前,我不得不面對類似的爭論。沒有人想學習M4(或任何可以幫助的東西)。該項目成爲了bash和python腳本的組合,再加上一個可怕的C++應用程序,主要是使用C風格的宏。最後,在系統變得任意複雜(C++應用程序通過`system(2)`調用python和shell腳本)6個月後,有權切換它,我用200行M4腳本換掉了這個混亂。我永遠不會接受「我們不想學習它」作爲一個有效的藉口。 – DevNull 2017-12-04 17:07:16