Pergunta

Ao compilar um arquivo de origem Haskell via GHC ghc --make foo.hs sempre deixa para trás uma variedade de diferentes foo.exe arquivos intermediários. Estes são foo.hi e foo.o.

Muitas vezes acabam por ter de apagar os .hi e .o arquivos para evitar bagunçando as pastas.

Existe uma opção de linha de comando para GHC não deixar para trás seus arquivos intermediários? (Quando perguntado sobre #haskell, a melhor resposta que obtive foi ghc --make foo.hs && rm foo.hi foo.o.

Foi útil?

Solução

Eu tenho ido através dos docs GHC um pouco, e não parece ser um built-in maneira de remover os arquivos temporários automaticamente - afinal, GHC precisa desses arquivos intermediários para construir o executável final, e sua presença acelera compilação geral quando GHC sabe que não tem que recompilar um módulo.

No entanto, você pode achar que definindo a opção -outputdir irá ajudá-lo; que irá colocar todos os seus arquivos de objeto (.o), arquivos de interface (.hi) e arquivos FFI toco no diretório especificado. É ainda "desordem", mas pelo menos ele não está em seu diretório de trabalho mais.

Outras dicas

Meu trabalho usual é a utilização Cabal em vez de ghc diretamente. Isso define a opção outputdir em uma pasta de compilação apropriado e pode fazer coisas como a documentação de construção haddock para você. Tudo que você precisa é definir o arquivo .cabal para o seu projeto e, em seguida, dizer Cabal instalar ou Cabal construir em vez de ghc executado diretamente. Desde que você precisa seguir este processo no final, se você quiser compartilhar seu trabalho em hackage, é uma boa prática para entrar e que ajuda a gerenciar as dependências do pacote também.

GHC agora tem as opções no-keep-hi-files e no-keep-o-files. Veja aqui para mais informações.

Você pode definir o -hidir para / dev / null, penso eu, enviá-los lá. Além disso, a opção -fno-code em turnos gerais off muita saída. Você pode apenas querer usar Cabal.

Acontece que usando -hidir / -odir / -outputdir não é bom; / Dev / null é um arquivo, e não um diretório. Consulte http://www.haskell.org/pipermail/xmonad/2010 -May / 010182.html

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