2009-10-22 9 views

risposta

27

GNU make (e molti altri) ha due metodi principali per assegnare valori alle variabili. Differiscono in base all'operatore che si utilizza. Secondo the documentation, un unico segno di uguale (=) causerà una ricorsivo espansione del valore, mentre un colon-equals (:=) causerà un semplice espansione.

Il codice indicato utilizza un := e quindi dovrebbe causare una semplice espansione. Quello che stai vedendo è un messaggio di errore associato a un'espansione ricorsiva. Mi aspetterei che tipo di errore se si ha qualcosa di simile:

PATH = $(PATH):/other/dir 

Potrebbe essere l'errore causato da una linea diversa nel makefile che non avete citato? Se sei sicuro che il tuo cut-and-paste sia corretto, e che questa sia la linea che sta causando il problema, sarebbe utile se potessimo vedere l'intero makefile non modificato.

+0

Ho provato ogni modo ho potuto pensare di aggiungere nuove cartelle al percorso, pur mantenendo quelli già esistenti. Senza fortuna. Alla fine, ho optato per l'hardcoding delle directory necessarie nel PERCORSO. – Geo

+0

@Geo, se non hai capito e provi ciò che Tim ha suggerito, non rende la sua risposta errata e non vale la pena accettarla. –

-5

provare a cambiare $ (PATH) per $ {PATH}

1

Un'altra possibilità è quella di utilizzare la funzione di shell:

PATH = $(shell printenv PATH):/other/dir

Problemi correlati