Como substituo os sinalizadores de compilação de Perl ao criar módulos?
-
22-09-2019 - |
Pergunta
Ao criar um módulo Perl Extutils :: Makemaker usa os sinalizadores definidos em config.pm (consulte a configuração PerlDoc) para valores como ccflags e ldflags.
Como substituo esses valores (com exceção de editar o makefile.pl)?
perl Makefile.PL ldflags=<options>
não parece funcionar.
Contexto: Estou tentando compilar o termo :: readLine :: GNU no OS X 10.6. O OS X PERL padrão é um binário universal e, portanto, possui ccflags como -arch i386 -arch ppc etc.
Por outro lado, minha versão do GNU ReadLine (6.0) foi compilada da fonte apenas para -Arch i386. Como tal, não contém os símbolos esperados para um módulo que tenta vincular -o a ele usando -Arch PPC.
Solução
Em geral, tentar substituir as configurações no config.pm é um exercício de futilidade. O motivo mais normal para querer alterá-los é alterar o compilador em uma máquina onde o Perl foi compilado com um compilador não-GNU, mas você deseja usar o GCC. Isso é tão difícil de fazer que é de muito mais simples reconstruir o Perl com o compilador escolhido, instalar todos os módulos auxiliares e, em seguida, use o Build o novo módulo escolhido, em vez de tentar combater 'o sistema'.
Portanto, você pode fazer uma das duas coisas - construir sua biblioteca GNU ReadLine com as mesmas opções que o Perl usaria ou construir seu Perl com as opções usadas para criar o GNU ReadLine. Tentar dobrar um para conhecer o outro não é recomendado se você valorizar sua máquina e o cabelo na sua cabeça (por favor, não bata na máquina com tanta força - é o software com o qual você deve ficar frustrado, não o hardware; os mac são legais !).
Das duas opções, a reconstrução do GNU ReadLine é provavelmente o mais fácil - é menor e tem menos complementos.
Outras dicas
Informações fornecidas no Suporte de swingsfile A seção dos documentos pode ser relevante, embora eu não tenha tentado.