Linux: variáveis (ou macros) nos gnu make utilidade
o GNU faço
utilidade em Linux vem a seu salvamento por ler e interpretar um makefile. Além da capacidade básica de metas de construção de dependentes, GNU faço inclui muitas características que tornam mais fácil para você expressar as dependências e regras para a construção de um alvo de seus dependentes.Video: JDK - Instalando e Configurando Variáveis de Ambiente
Se você precisa compilar um grande número de C ++ arquivos usando GCC com as mesmas opções, por exemplo, digitando as opções para cada arquivo é tedioso. Você pode evitar essa tarefa repetitiva, definindo uma variável ou macro em fazer da seguinte forma:
# Define macros para o nome de compilerCXX = g ++ # Definir um macro para o GCC flagsCXXFLAGS = -O2 -g -mcpu = i686 # A regra para a construção de uma fileform.o objeto: form.C Form.h $ (CXX) -c $ (CXXFLAGS) form.C
Neste exemplo, CXX e CXXFLAGS são fazer variáveis. (GNU faço prefere chamá-los variáveis, mas a maioria Unix faço utilitários chamá-los macros.)
Video: Variáveis de ambiente
Para usar uma variável em qualquer lugar do makefile, começar com um sinal de dólar ($) Seguida pela variável dentro de parênteses. GNU make substitui todas as ocorrências de uma variável com o seu definição- assim, ele substitui todas as ocorrências de $(CXXFLAGS) Com a string -O2 -g -mcpu = i686.
GNU make tem várias variáveis predefinidas que têm significados especiais. Esta tabela lista essas variáveis. Além das variáveis listadas aqui, GNU faço considera todas as variáveis de ambiente (como CAMINHO e CASA) Para ser pré-definidos como variáveis bem.
Variável | Significado |
---|---|
$% | Nome do membro para alvos que são arquivos. Se o alvo é libDisp.a (image.o), por exemplo, $% é image.o. |
$ * | Nome do arquivo de destino sem a extensão. |
$ + | Nomes de todos os arquivos dependentes com dependências duplicados, listados na sua ordem de ocorrência. |
$ Lt; | O nome do primeiro arquivo dependente. |
$? | Nomes de todos os arquivos dependentes (com espaços entre os nomes) que são mais novos do que o alvo. |
$ @ | nome completo do alvo. Se o alvo é libDisp.a image.o), por exemplo, $ @ é libDisp.a. |
$ ^ | Nomes de todos os arquivos dependentes, com espaços entre os nomes. Os duplicados são removidos os nomes de ficheiros dependentes. |
AR | Nome do (valor padrão programa de manutenção de arquivo: ar). |
ARFLAGS | Bandeiras para o (valor padrão programa de manutenção de arquivo: rv). |
COMO | Nome do programa assembler que converte a montagem linguagem do código-objeto (valor padrão: Como). |
ASFLAGS | Bandeiras para a montador. |
CC | Nome do compilador C (valor padrão: cc). |
CFLAGS | Bandeiras que são passados para o compilador C. |
CO | Nome do programa que extrai um arquivo de RCS (default valor: co). |
COFLAGS | Bandeiras para a RCS co programa. |
CPP | Nome do pré-processador C (valor padrão: $ (CC) -E). |
CPPFLAGS | Bandeiras para o pré-processador C. |
CXX | Nome do valor compilador (padrão do C ++: g ++). |
CXXFLAGS | Bandeiras que são passados para o compilador C ++. |
FC | Nome do compilador Fortran (valor padrão: f77). |
fFlags | Bandeiras para o compilador Fortran. |
LDFLAGS | Bandeiras para o compilador quando é suposto para invocar o vinculador ld. |
RM | Nome do comando para excluir um arquivo (Valor padrão: -f rm). |