Pergunta

Estou procurando uma ferramenta que possa gerar makefile para um projeto C/C++ para diferentes compiladores (gcc, microsoft vc++, borland etc) e diferentes plataformas (Win, Linux, Mac).

Foi útil?

Solução

Outras sugestões que você pode considerar:

  • Descons é uma biblioteca de construção multiplataforma e compilador cruzado que usa scruipting Python para os sistemas de construção.Usado em uma variedade de projetos grandes e tem um desempenho muito bom.

  • Se você estiver usando Qt, QMake também é um bom sistema de construção.

  • CMake também é muito doce.

  • Finalmente, Se todo o resto falhar...

Outras dicas

Você tentou Gerador Makefile Automático?

Ele suporta os seguintes compiladores:

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 

eu usei Arquivo de cozimento antes com algum sucesso.É bastante simples e parece funcionar bem.

CMake é a única ferramenta que pode realmente gerar projetos reais do Visual Studio (ou seja,não projetos "Makefile" que exigem uma ferramenta externa) e que recria automaticamente os projetos quando o arquivo de entrada de construção (CMakeLists.txt) é alterado.

Os problemas de desempenho dos SCons são bem conhecidos e um tópico exaustivamente debatido nas listas de discussão dos SCons.

eu votaria em OMake.Ele corrige todas as reclamações que tive com o GNU make:

  • é uma linguagem completa.
  • usa MD5 em vez de carimbos de data/hora.
  • fornece um shell mínimo que implementa os comandos unix mais úteis em todas as plataformas:encontrar, sed, awk, etc...
  • funciona com nomes de caminho de estilo unix ou dos.
  • amplamente documentado.
  • suporta compilações paralelas.
  • rápido.

A geração automática de (M|m)akefiles me preocupa com o que você está tentando fazer aqui.

Você entende o que acontece nos bastidores quando você digita make?Ou gmake?Só estou perguntando porque se você não fizer isso quando as coisas quebrarem, como novas alterações de código não serem incorporadas à compilação, você terá dificuldades em tentar resolver o que aconteceu.

Para começar a entender o make, sugiro que você leia "Gerenciando projetos com GNU Make" por Robert Mecklemberg.Os primeiros capítulos cobrem como o make está funcionando.Ser ouvido sobre o fato de que make é um encadeamento reverso é uma das maiores coisas que você pode fazer.

Se não o fizer, e seu sistema parecer funcionar, então você estará, para usar o termo dos Programadores Pragmáticos, "programação por coincidência". (-:

Aliás, ótimos artigos disponíveis em seu site!E não estou envolvido com eles.YMMV.Sim, sim...

Também vou apoiar o CMake.Já uso há algum tempo em um projeto multiplataforma e estou muito satisfeito com ele.

Uma questão a considerar é: você deseja um criador "makefile" ou um sistema de compilação substituto?O problema com sistemas de construção de substituição é que normalmente você não obtém uma boa integração IDE para plataformas cujos usuários esperam isso (Visual C++).Se você quiser um criador de makefile em vez de um sistema de compilação substituto, dê uma olhada em MPC.É gratuito e de código aberto.

Uma adição recente à lista de substituições de marcas é waf.Por experiência pessoal, o SCONS faz o trabalho muito bem.

Não sei se você ainda tem interesse nesta questão.Estou trabalhando em uma projeção de gerador automático Makefile semelhante chamada CodeMate, desenvolvido usando Ruby.Talvez não esteja tão maduro para aplicações grandes no momento, mas continuarei trabalhando nisso para torná-lo melhor.Os usuários não deveriam precisar editar nenhum arquivo de configuração para construir o software, ou pelo menos deveria ser.A curva de aprendizado deve ser minimizada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top