2016-10-24 13 views
0

У нас есть makefile makefile (Microsoft, а не Gnu), который использует vcvarsall.bat. Когда Dev15 меняет путь vcvarsall.bat, нам нужно условно установить его.Условная переменная набора в файле makefile

Я добавил

if $(VISUALSTUDIOVERSION) == 15.0 
     set VVA="$(VSINSTALLDIR)\Common7\IDE\VisualCpp\Auxiliary\Build\vcvarsall.bat" 
    else 
     set VVA="$(VSINSTALLDIR)\vc\vcvarsall.bat" 
    endif 

И это продолжает давать ошибку:

if 15.0 == 15.0 
The syntax of the command is incorrect. 
NMAKE : fatal error U1077: 'if' : return code '0x1' 
Stop. 

Я новичок в NMake и, возможно, просто думать в строках пакетного кода. Кто-нибудь может остановить то, что неправильно в моей конструкции if-else?

+0

Итак, как это связано с C или C++? (риторический вопрос) – Olaf

+0

Простите, что нет. Потому что я читал это через https://msdn.microsoft.com/en-us/library/txcwa2xx.aspx. – dushyantp

+0

Попробуйте 'if '$ (VISUALSTUDIOVERSION)" == "15.0" ' – user3286661

ответ

0

У меня также была та же проблема. решение этой проблемы состоит в том, что инструкции IF и ENDIF должны иметь отступы должным образом. Так что компилятор распознает директиву End of IF. Отступы решили проблему для меня.