dev2null
BANNED | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору При сборке с nmake (ком. строка в Visual Studio 2008/2010 x64 Win64 Command Prompt: nmake CPU=AMD64 NEW_COMPILER=1 MY_STATIC_LINK=1 NO_BUFFEROVERFLOWU=1) компиляция обрывалась с такой ошибкой: Цитата: ... ZHandler.cpp NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\cl.EXE"' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\nmake.exe"' : return code '0x2' Stop. NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\nmake.exe"' : return code '0x2' Stop. | x86 же без проблем собирается, часть бинарей x64 тоже, а вот 7z.dll x64 не хочет. Немного покопавшись - дело оказалось в CPP\7zip\Archive\ExtHandler.cpp, после замены в котором: if (((size + (1 << _h.BlockBits) + 1) >> _h.BlockBits) > _h.NumBlocks - block) на if (((size + (1i64 << _h.BlockBits) + 1i64) >> _h.BlockBits) > _h.NumBlocks - block) x64 собралось без проблем, зато с x86 такой же косяк вылез, пока не исправил назад. Но каждый раз править ExtHandler.cpp перед сборкой разных разрядностей - это явный костыль (ещё нет уверенности, что правильный, хотя собранные так 7-Zip x64 и 7z.dll x64 вроде нормально работают). Соппсно, вопрос к знатокам студии и/или CPP - что я делаю не так? | Всего записей: 574 | Зарегистр. 23-10-2011 | Отправлено: 11:47 29-11-2015 | Исправлено: dev2null, 11:55 29-11-2015 |
|