2016-04-25 3 views
0

Ich habe Probleme beim Zugriff auf eine Umgebungsvariable in einem nmake conditional. Ich habe Folgendes versucht, und sie alle führen zu einer Art von Syntaxfehler bei der . Ich habe auch alle == Varianten versucht:Wie kann man auf eine Variable in einer nmake-Bedingung zugreifen?

!IF $(PROCESSOR_ARCHITECTURE) = "x86" 
LIB_SRCS = $(LIB_SRCS) rdrand.cpp 
!ENDIF 

!IF %PROCESSOR_ARCHITECTURE% = "x86" 
LIB_SRCS = $(LIB_SRCS) rdrand.cpp 
!ENDIF 

!IF [$(PROCESSOR_ARCHITECTURE) = "x86"] 
LIB_SRCS = $(LIB_SRCS) rdrand.cpp 
!ENDIF 

!IF [%PROCESSOR_ARCHITECTURE% = "x86"] 
LIB_SRCS = $(LIB_SRCS) rdrand.cpp 
!ENDIF 

Zum Beispiel !IF $(PROCESSOR_ARCHITECTURE) = "x86" Ergebnisse in test.nmake(30) : fatal error U1023: syntax error in expression verwenden. Linie 30 ist die !IF.

MSDN Makefile Preprocessing Directives Seite ist ein Teaser, und es sagt mir nicht, wie man den Ausdruck bildet (oder ich konnte es nicht lokalisieren).

Wie greife ich auf eine Variable in einer nmake-Bedingung zu?


Wenn ich qxg Vorschlag folgen, wird der Code im Block nicht ausgeführt wird:

!IF "$(PROCESSOR_ARCHITECTURE)" = "x86" 
LIB_SRCS = $(LIB_SRCS) rdrand.cpp 
!ENDIF 

In der Tat Druck "$(PROCESSOR_ARCHITECTURE)" mit !MESSAGE zeigt sollte es passen. Und ein XXX in dem Block zu platzieren, um einen Fehler zu verursachen, erzeugt keinen Fehler.


Und die folgende ist die Müllhalde der Variablen:

C:\Users\Test>nmake /P 

Microsoft (R) Program Maintenance Utility Version 11.00.61030.0 
Copyright (C) Microsoft Corporation. All rights reserved. 

MACROS: 
... 
PROCESSOR_ARCHITECTURE = x86 
      OS = Windows_NT 
... 

Antwort

1

Versuchen

!IF "$(PROCESSOR_ARCHITECTURE)" == "x86" 
+0

Mein schlechtes ... Ich hatte einen Tippfehler - vergessen einer der führenden *** ' $ '***. – jww

Verwandte Themen