Пытаюсь скомпилировать обходы по инструкции. Я бы хотел скомпилировать 32-битные версии библиотеки, так как планирую подключить 32-битное приложение. Я искал ответы в Google, но они, кажется, объясняют очевидное, например, переход на 64-разрядную версию, но я собираюсь компилировать для 32-разрядной версии.
Я использовал сочетание следующих команд, пытаясь получить это для работы:
SET DETOURS_TARGET_PROCESSOR=X86
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
CALL "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
NMAKE
Однако это приводит к следующим ошибкам:
1) Во время VCVARSALL:
[ERROR:team_explorer.bat] Directory not found : "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer"
[vcvarsall.bat] Environment initialized for: 'x86'
2) Во время NMAKE
LIBCMT.lib(chkstk.obj) : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64'
Как видите, несмотря на все мои усилия, он жалуется на тип целевой машины.
Я также пробовал vcvarsall x64 в паре с SET DETOURS_TARGET_PROCESSOR = X86. (Не уверен, что это действительный тест) Результатом стало
iping_d.obj : error LNK2001: unresolved external symbol iping_ProxyFileInfo
Пожалуйста, помогите мне понять, что я делаю неправильно.
Когда я выбираю DETOURS_TARGET_PROCESSOR = X64, он компилируется успешно, но создает 64-битную библиотеку, которую я не могу использовать в моей 32-битной dll.
Я также пробовал все это из V C Командная строка собственных инструментов x86 с теми же результатами.