Operadores de pré-processamento de makefile
As expressões de pré-processamento de Makefile pode usar os operadores que atuam em valores constantes, em códigos de saída de comandos, em cadeias de caracteres, macros em, e em caminhos de sistema de arquivos.Para classificar uma expressão, o pré-processador expande primeiro macros e em seguida, executar comandos em seguida, executa operações.Operações são avaliadas na ordem de agrupamento explícito entre parênteses, e na ordem de precedência de operadores.O resultado é um valor constante.
O operador de DEFINED é um operador lógico que atue em um nome de macro.A expressão DEFINED(macroname) é verdadeira se macroname é definido, mesmo se não tem um valor atribuído.DEFINED em combinação com !IF ou !ELSE IF é equivalente a !IFDEF ou a !ELSE IFDEF.No entanto, diferentemente destas políticas, DEFINED pode ser usado em expressões complexas.
O operador de EXIST é um operador lógico que atue em um caminho sistema de arquivos.EXIST(caminho) é verdadeiro se caminho existe.O resultado de EXIST pode ser usado em expressões binários.Se caminho contiver espaços, colocá-lo entre aspas duplas.
Para comparar duas cadeias de caracteres, use o operador de igualdade () ou==o operador de!=(desigualdade).Incluir cadeias de caracteres entre aspas duplas.
As constantes inteiro pode usar os operadores unários para a negação numérica (–), o seu~complementar (), e negação lógica (!).
As expressões podem usar os seguintes operadores.Operadores de precedência igual são agrupados juntos, e os grupos são listados em ordem decrescente de precedência.Os operadores unários associação com o operando à direita.Operadores binários de operandos iguais o associado de precedência da esquerda para a direita.
Operator |
Descrição |
---|---|
DEFINED(macroname) |
Gera um valor lógico para o estado atual da definição de macroname. |
EXIST(caminho) |
Gera um valor lógico para a existência de um arquivo em caminho. |
! |
Lógico unário NÃO. |
~ |
Unário o complemento. |
- |
Negação unário. |
* |
Multiplicação. |
/ |
Divisão. |
% |
Módulo restante (). |
+ |
Adição. |
- |
Subtração. |
<< |
Bit a bit SHIFT deixada. |
>> |
Direito de bit a bit SHIFT. |
<= |
Menor que ou igual. |
>= |
Maior que ou igual. |
< |
Menor que. |
> |
Maior do que. |
== |
Igualdade |
!= |
Desigualdade. |
& |
Bit a bit. |
^ |
XOR bit a bit. |
| |
OU bit a bit. |
&& |
A lógica AND. |
|| |
Lógica OU. |
Observação |
---|
O operador bit a bit XOR (^) é o mesmo que o caractere de escape, e deve ser escapado (como ^^) quando é usado em uma expressão. |