Tutorial para construir projetos a partir da fonte

1

Embora tenha escrito um pouco de software e me considero relativamente qualificado, em termos de computador, nunca construí o projeto de outra pessoa da fonte . NUNCA. E eu tentei - oh, eu tentei. Sempre faltam arquivos de cabeçalho, erros obscuros, cadeias de dependências ridiculamente longas. Se algo realmente compilar, ele irá falhar no lançamento.

É seguro assumir que nenhum todo projeto de código aberto está quebrado, e que, portanto, sou eu. Existe algum tutorial ou sugestão para lidar com o geral? processo de construção de um projeto a partir da fonte? Ou normalmente funciona quando se segue as instruções, e nesse caso eu estou aparentemente amaldiçoado?

    
por andyvn22 06.08.2010 / 09:57

1 resposta

2

Por favor, note que este é um esboço, pois os projetos podem variar muito.

Provavelmente, a causa mais comum de falha é de fato dependências ou falta de portabilidade de código.

Primeiro, certifique-se de ter o XCode mais recente instalado.

Eu recomendaria usar MacPorts ou Homebrew em primeiro lugar. Isso lhe dará acesso a muitos pacotes de código aberto prontos para uso.

Então, se o seu projeto não estiver na lista de pacotes fornecida, os gerenciadores de pacotes acima mencionados permitirão que você instale suas dependências diretas (e por sua vez, suas dependências, recursivamente) muito mais facilmente do que construir as dependências da fonte manualmente. / p>

As próximas duas opções são oferecidas a você:

  1. você cria e gerencia o projeto manualmente
  2. você cria um portfile (MacPorts) ou uma fórmula (Homebrew), permitindo que o gerenciamento de pacotes busque, construa, instale e gerencie seu projeto

Como construir seu projeto depende muito do projeto em si e da linguagem em que ele está escrito. As instruções geralmente estão em um arquivo INSTALL ou README.

Como você fala sobre arquivos de cabeçalho, suponho que seja um programa escrito em C ou C ++. Nesse caso, o processo de compilação é geralmente o seguinte:

./configure --prefix=/usr/local
make

Certifique-se de definir um prefixo para não sobrescrever coisas do sistema em / usr / bin para projetos que usam padrões insanos.

Se todas as dependências forem satisfeitas, o script configure deve prosseguir com êxito e, portanto, deve make . Se ocorrerem problemas, você pode apontar ou desabilitar dependências com o script configure , sinalizadores relevantes dados por ./configure --help .

Uma vez que a compilação tenha sido bem sucedida, você pode prosseguir para instalar via sudo make install .

Como alternativa, tente criar um arquivo de porta ou uma fórmula que execute as etapas de construção, mas seja gerenciada pelo gerenciador de pacotes.

A rota do gerenciador de pacotes tem muitas vantagens:

  • os comandos de compilação são facilmente reproduzidos para uma versão mais recente do projeto
  • a desinstalação é facilmente manipulada
  • você pode contribuir com o portfile / formula
  • você pode se inspirar em um portfile / fórmula existente escrito para um projeto semelhante para criar seu projeto com êxito

Resista à tentação de criar binários da Universal. Pode ser uma questão complicada, que você deve tentar apenas se tiver sucesso e dominar as compilações regulares primeiro.

Lembre-se de que alguns projetos não são gravados de forma portátil (seja por necessidade, irrelevância ou falta de vontade) e não funcionarão no Mac OS X. Embora não seja trivial, essa pode ser uma oportunidade para aprender e portar o código para uma nova plataforma ...

    
por 06.08.2010 / 11:21