Posso configurar o gcc para gerar sempre o nome do arquivo de código em vez do a.exe?

1

Por padrão, ao executar gcc test.c , o gcc gerará o executável como a.exe . Existe uma maneira de substituir globalmente isso para que o gcc crie test.exe ?

Isso pressupõe que há apenas um arquivo de entrada - caso contrário, o gcc pode optar por usar a.exe, ou talvez usar o nome do primeiro arquivo.

    
por Mark 14.05.2016 / 02:06

1 resposta

6

Isso geralmente é feito com as regras do makefile, por exemplo, dado o test.c , você seria capaz de fazer isso (mesmo sem ter um makefile):

make test

Da mesma forma, existem regras predefinidas para o g ++, dado o test2.cc , você poderia fazer a mesma coisa:

make test2

Mas em qualquer um dos casos, você provavelmente precisa de bibliotecas. Fazer isso é o que os makefiles são bons (além de fornecer maneiras de compilar múltiplos objetos).

O gcc por si só não tem uma opção para simular regras de makefile. Se você quer uma ferramenta que faz isso, você poderia fazer um script de shell que faz o caso especial mencionado, por exemplo,

#!/bin/sh
for name in "$@"
do
    case "$name" in
    *.c)
        gcc -o $(basename "$name") "$name"
        ;;
    *.cc)
        g++ -o $(basename "$name") "$name"
        ;;
    *)
        echo "ignoring $name, since it is not one of my files!"
        ;;
    esac
done

Mas (veja o início da resposta), o script simplesmente torna explícito o recurso que as regras predefinidas para make fornecem a você. Por outro lado, você poderia modificar o script para adicionar bibliotecas necessárias, e fazer isso em um lugar (ao invés de um conjunto de makefiles, o que parece ser o problema).

A propósito: se o gcc fornece automaticamente um sufixo ".exe" (quando você não o faz) depende da plataforma e da configuração do compilador. O sufixo não é útil em plataformas do tipo Unix e geralmente é opcional em coisas relacionadas, como o Cygwin.

    
por 14.05.2016 / 02:15

Tags