Сейчас я создаю проект .dll с VC 10. В зависимости от того, включены ли определенные библиотеки или нет, выходной файл .dll, а также соответствующие им имена файлов lib должны отличаться. Например, если в проекте используется собственная библиотека STL, предоставляемая Mirosoft, имя .dll — * _native_stl.dll; если проект использует STLport, то имя выходного файла .dll * _stlport.dll. Конечно, я могу сделать это вручную, но сейчас я собираюсь позволить VC 10 сделать это для меня автоматически. Мой план состоит в том, что если я использую определенную библиотеку, я определяю переменную, чтобы представить ее в Определения препроцессора (находится в препроцессоре C / C ++). После этого я определяю файл .bat в Событие после постройки (находится в разделе Build Events): call "$(ProjectDir)\script.bat"
, В файле script.bat я изменю имя вывода по умолчанию .dll $(OutDir)$(TargetName)$(TargetExt)
в соответствии с определением переменной в Определения препроцессора раздел. Моя основная проблема заключается в том, что в пакетном файле я могу проверить, определена ли определенная переменная или нет. Спасибо! Любые предложения по изменению имени выходного файла также приветствуются.
My main problem is that for in batch file how I can check a certain variable is defined or not. Thanks!
Вы можете проверить это с помощью следующего заявления:
if "%MYVAR%" == "" set undefined=1
Переменная не определено будет установлен в 1, только если MYVAR не определено.
Других решений пока нет …