2008-08-13 128 views
39

我正在尋找一種工具,可以爲不同編譯器(gcc,microsoft vC++,borland等)和不同平臺(Win,Linux,Mac)的C/C++項目生成makefile。生成makefile的好工具?

回答

34

您可能希望其他建議考慮:

  • Scons是一個跨平臺,交叉編譯器編譯庫,使用Python scruipting爲構建系統。用於各種大型項目,表現非常好。

  • 如果您使用Qt,QMake也是一個不錯的構建系統。

  • CMake也很漂亮。

  • 最後,If all else fails...

8

你試過Automatic Makefile Generator

它支持以下編譯器:

Borland 3.1 
Borland 5.0 
Borland 5.0, 16 bit 
Borland 5.5 
Borland 5.6 
Borland 5.8 
CC 
Gnu g++ 
Gnu g++, dynamic library 
Intel 5, 6, 7 for Linux 
Intel 5, 6, 7 for Linux, dynamic library 
Intel 5, 6, 7 for windows 
Intel 8,9,10 for Linux 
Intel 8,9,10 for Linux, dynamic library 
Intel 8,9 for windows 
Intel 10 for windows 
Visual C++ 5 
Visual C++ 6, 7, 7.1 
Visual C++ 8 
Open Watcom 
Watcom 10A 
Watcom 10A, 16 bit 
1

我會還的CMake第二。我在一個多平臺項目中使用它已經有一段時間了,我對此非常滿意。

0

需要考慮的一個問題是你想要一個「makefile」創建者還是一個替代構建系統?替換構建系統的問題在於,對於用戶期望的平臺(Visual C++),您通常不會獲得良好的IDE集成。 如果您確實需要makefile創建器而不是替換構建系統,請查看MPC。它是免費且開源的。

4

我以前用過Bakefile,取得了一些成功。這很簡單,似乎運作良好。

2

自動生成(M | m)akefiles讓我擔心你要在這裏做什麼。

當您輸入make時,您是否瞭解封面下方會發生什麼?還是gmake?我只是在問,因爲如果你不在事情中斷時,比如新的代碼更改沒有被合併到構建中,那麼嘗試處理髮生的事情就會遇到困難。

要開始瞭解make,我可以建議閱讀Robert Mecklenberg的「Managing Projects with GNU Make」。前面的章節介紹了make的工作方式。讓你聽到製造反向鏈接的事實是你能做的最重要的事情之一。

如果你不這樣做,並且你的系統似乎能夠工作,那麼你就可以使用「實用程序員」的術語「programming by coincidence」。 ( - :!。可在他們的網站上

BTW大文章,我不參與他們因人而異亞達,亞達...

4

的CMake是唯一的工具,它可以真正產生實際的Visual Studio項目(即不是「Makefile」 - 調用外部工具的項目),並在構建輸入文件(CMakeLists.txt)更改時自動重新創建項目。在SCons郵件列表上。

3

我會投票OMake。它修復了我與GNU make的所有抱怨:

  • 這是一種全面的語言。
  • 使用MD5而不是時間戳。
  • 提供了一個最小的shell,它可以在所有平臺上實現最有用的unix命令:find,sed,awk等...
  • 可以使用unix或dos樣式路徑名。
  • 廣泛記載。
  • 支持並行構建。
  • 快。
0

最近增加的替換列表是waf。從個人經驗來看,SCONS很好地完成了這項工作。

0

我不知道你是否對這個問題有興趣了。我正在研究使用Ruby開發的名爲CodeMate的類似Makefile自動生成器投影。也許現在對於大型應用程序還不是很成熟,但我會繼續努力以使其更好。用戶不需要編輯任何配置文件來構建軟件,或者至少它應該是。學習曲線應該最小化。

+1

又一個死的SO鏈接!我手動去了你的GitHub頁面,並且我在CodeMate中看到的是一個只有Fortran編譯的東西。你是否創建了另一個同名的項目? [這](https://github.com/shepherddog/CodeMate)看起來可能是你的意思。 – refi64 2015-03-06 02:52:19