2016-04-25 5 views
0

nmake conditionalの環境変数にアクセスする際に問題があります。私は次のように試してみましたが、それらは全て、ある種の文法エラーをもたらします。!IFtest.nmake(30) : fatal error U1023: syntax error in expression!IF $(PROCESSOR_ARCHITECTURE) = "x86"結果を用いて、例えばnmakeの条件変数にアクセスする方法は?

!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 

:私はまた、すべての==バリエーションを試してみました。 30行目は!IFです。

MSDNのMakefile Preprocessing Directivesページはティーザーであり、式の作成方法(または見つからない)を教えてくれません。

nmakeの条件変数にアクセスするにはどうすればよいですか?私はqxgの提案に従っている場合


、そのブロック内のコードが実行されていません。実際には

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

を、!MESSAGE"$(PROCESSOR_ARCHITECTURE)"を印刷すると、それが一致している必要がありますを示しています。ブロックにエラーが発生しないようにブロック内にXXXを配置しても、エラーは発生しません。


そして次は、変数のダンプです:

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 
... 

答えて

1

は私の悪い

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

を試してみてください...私はタイプミスがあった - '***大手のいずれかを忘れてしまいました$ '***。 – jww

関連する問題