2012-09-05 9 views
13

Duplicar posible:
How to get the second dependency file using Automatic Variables in a Makefile?¿Puedo obtener el segundo prerrequisito en la versión de GNU?

estoy usando GNU make, y estoy usando variables automáticas tales en $<, etc. $^$< sé que es sólo el primer requisito, y $^ son todos los requisitos previos. ¿Hay alguna manera de obtener solo el segundo requisito previo?

+0

¿Podría decirnos algo más sobre por qué lo necesita o qué intenta lograr? Es posible que pueda separar elemento '$ ^' por elemento (es decir, tratarlo como una matriz), y luego tomar el segundo de esa manera. – Novelocrat

+0

@Beta, Sí, este es un duplicado. Voy a votar para cerrarlo como tal. – pauldoo

Respuesta

34

Suponiendo sus requisitos previos son fichas regulares,

echo $(word 2,$^) 

a menudo me encuentro dando el primer argumento una posición especial, y acceder a los requisitos previos restantes con

echo $(filter-out $<,$^) 
+0

El truco de filtrado es exactamente lo que estaba buscando :) – vbwx

-2

Lo mejor que se me ocurre con, que creo que es un poco un truco, es utilizar echo $^ | cut -f2 -d' ', a la:

output.txt: a.txt b.txt 
    cat $< | ./something `echo $^ | cut -f2 -d' '` > [email protected] 

Me encantaría escuchar una mejor respuesta que esta. :)

+6

Aquí tienes: '$ (palabra 2, $ ^)' –

Cuestiones relacionadas