jakieś dobre narzędzie do generowania makefile? [zamknięte]

Szukam narzędzia, które może wygenerować makefile dla projektu C / C++ dla różnych kompilatorów (GCC, microsoft vc++, borland itp.) i różnych platform (Win, Linux, Mac).

Author: Lightness Races in Orbit, 2008-08-13

10 answers

Inne sugestie, które warto rozważyć:

  • Scons to wieloplatformowa, wieloplatformowa biblioteka kompilatora, wykorzystująca Scruipting Pythona do budowania systemów. Używany w różnych dużych projektach i działa bardzo dobrze.

  • Jeśli używasz Qt, QMake jest również dobrym systemem budowania.

  • CMake jest również całkiem słodki.

  • Wreszcie, Jeśli Wszystko inne zawiedzie...

 35
Author: Thomi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-06 23:52:33

Czy próbowałeś automatycznego generatora Makefile ?

Obsługuje następujące Kompilatory:

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 
 8
Author: prakash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-29 02:43:31

Używałem Bakefile wcześniej z pewnym sukcesem. Jest to dość proste i wydaje się działać dobrze.

 4
Author: Imbue,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-27 07:27:43

CMake jest jedynym narzędziem, które może generować rzeczywiste projekty Visual Studio (tzn. nie "Makefile" - projekty, które wywołują zewnętrzne narzędzie), i które automatycznie odtwarza projekty podczas budowania pliku wejściowego (CMakeLists.txt) zmiany.

Kwestie wydajności SCons są dobrze znane i szeroko dyskutowane na listach dyskusyjnych SCons.

 4
Author: JesperE,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 20:49:24

Zagłosowałbym na OMake . Naprawia wszystkie skargi, które miałem z GNU make:

    To pełny język.
  • używa MD5 zamiast znaczników czasu.
  • dostarcza minimalną powłokę, która implementuje najbardziej użyteczne polecenia Uniksa na wszystkich platformach: find, sed, awk, itp...
  • działa z nazwami stylów unix lub dos.
  • obszernie udokumentowane.
  • obsługuje równoległe Kompilacje.
  • Szybko.
 3
Author: bltxd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-23 17:22:32

Automatyczne generowanie plików (M|M)sprawia, że martwię się o to, co próbujesz tutaj zrobić.

Czy rozumiesz, co się dzieje pod kołdrą, gdy piszesz make? Albo gmake? Pytam tylko dlatego, że jeśli nie zrobisz tego, gdy coś się zepsuje, na przykład nowe zmiany kodu nie zostaną włączone do kompilacji, będziesz miał trudności z próbą pracy nad tym, co się stało.

Aby zacząć rozumieć make, mogę zasugerować przeczytanie" Zarządzanie projektami za pomocą GNU Make " autorstwa Roberta Mecklenberg. Pierwsze rozdziały dotyczą tego, jak działa Marka. Zapoznanie się z faktem, że make jest łańcuchowaniem wstecznym, jest jedną z największych rzeczy, które możesz zrobić.

Jeśli tego nie zrobisz, a Twój system wydaje się działać, będziesz, używając pragmatycznego terminu programistów, " programowanie przez przypadek ". (-:

BTW świetne artykuły dostępne na ich stronie! I nie jestem z nimi związana. YMMV. Yada-yada...

 2
Author: Rob Wells,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-07 17:08:14

Ja też drugi CMake. Używam go od dłuższego czasu w wieloplatformowym projekcie i jestem z niego bardzo zadowolony.

 1
Author: grosauro,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-20 20:40:08

Jedną z kwestii do rozważenia jest czy chcesz kreatora "makefile" lub zastępczego systemu budowania? Problem z zastępczymi systemami budowania polega na tym, że zazwyczaj nie uzyskujesz dobrej integracji IDE dla platform, których użytkownicy tego oczekują (Visual C++). Jeśli chcesz stworzyć plik makefile zamiast zastępczego systemu budowania, spójrz na MPC . Jest darmowy i open source.

 0
Author: Adam Mitz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-23 01:37:17

Ostatnim dodatkiem do listy make replacements jest waf . Z własnego doświadczenia SCONS wykonuje tę pracę całkiem dobrze.

 0
Author: Gabi Davar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-18 04:56:17

Nie wiem, czy interesuje cię już to pytanie. Pracuję nad podobną projekcją auto-generatora pliku Makefile o nazwie CodeMate , opracowaną przy użyciu Ruby. Może nie jest to teraz tak Dojrzałe dla dużych aplikacji, ale będę nadal pracować nad tym, aby było lepiej. Użytkownicy nie powinni edytować żadnego pliku konfiguracyjnego, aby zbudować oprogramowanie, a przynajmniej tak powinno być. Krzywa uczenia się powinna być zminimalizowana.

 0
Author: Li Dong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-25 15:41:06