Vamos criar um shell script que facilita a compilação de um arquivo para c++.
Para compilar um arquivo para linguagem c++ usamos o comando g++.
Para verificar se o g++ está instalado no seu sistema
GNU/Linux, digite:
dpkg -l g++
Se o g++ não estiver instalado, digite:
aptitude install g++
Com o g++ instalado no sistema vamos para a sintaxe do comando.
Para compilar um arquivo.
g++ <arquivo>
Esta simples linha de código compilará o arquivo, gerando um executável 'a.out', isso se não tiver nenhum erro de sintaxe na programação.
Para melhorar a saída do programa verificando os Warnings:
g++ -Wall -pedantic <arquivo>
Agora vamos atribuir um nome para o arquivo de saída, usando "-o".
g++ -Wall -pedantic <arquivo_font> -o <arquivo_executável >
Opção Significado
-Wall Liga grande quantidade de warnings do g++
-pedantic Emite warnings sobre uso de itens proibidos pelo padrão ANSI
-o Especifica qual arquivo será gerado como saída (executável)
Até aqui aprendemos o crucial para compilar um arquivo para a linguagem c++.
Vamos criar um Shell para executar o comando g++ para facilitar, ao invés de ficar digitando toda vez "$g++ -Wall -pedentic <arq_font> -o <arq_executável >".
Vamos criar o shell com o nome ggc.h.
Quando criamos um arquivo *.h ou *.cpp no
Linux, ele interpreta a linguagem colorindo os comandos, isto facilita a programação.
touch ggc.h
Entre no arquivo.
vim ggc.h
#!/bin/bash
echo " ==Compilador g++== "
#Vamos verificar se o arquivo de entrada é um arquivo"-f"
test -f "$1" ||
echo "== $1 Não é um arquivo para compilação ==" && #sendo um arquivo compila
g++ -Wall -pedantic $1 - $2 || #Dando erro de sintaxe não gera o executável, Warning gera executável
echo "$1 Erro de sintaxe na compilação"
exit
Criando o shell para o g++ vamos dar permissão pra executar o arquivo que criamos:
chmod +u+x ggc.h
Agora para compilar um arquivo.cpp:
./ggc.h <arquivo.cpp> <arquivo.exe>
Ex.: Vamos compilar um arquivo chamado soma.cpp e gerar o executável soma.exe:
./ggc.h soma.cpp soma.exe
Deste modo o shell script que criamos tem que estar no mesmo diretório do arquivo.cpp. Vamos fazer o nosso shell script ser um comando global dentro do nosso sistema movendo ele para o diretório /usr/local/bin/:
sudo mv ggc.h /usr/local/bin
Está é uma das formas de facilitar a entrada do comando g++, também podemos criar uma alias para "g++ -Wall -pedantic", entre outras.
Voltando ao shell script que criamos, se você quer que o seu programa sempre tenha o mesmo nome do arquivo.cpp é só mudar a seguinte linha.
g++ -Wall -pedantic $1 - $2
Para:
g++ -Wall -pedantic $1 - $1
E na hora de chamar o nosso compilador só entramos com o nome do arquivo.cpp:
ggc <arquivo.cpp>
Lembrando que as extensões *.h e *.cpp não fazem nenhuma diferença no Linux. Só foram citadas para diferenciar um arquivo fonte de um executável.
Espero ter ajudado.
Obrigado.