Использование jam / VS для сборки проекта приводит к фатальной ошибке LNK1112 - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь собрать autoknit на моем 64-битном компьютере с Windows 10 с установленным сообществом Visual Studio 2017 Community. Я следовал инструкциям в README для проекта, включая клонирование репозиториев, но когда я пытаюсь запустить jam из консоли «x64 Native Tools Command Prompt для VS 2017», я сталкиваюсь со следующей ошибкой:

...found 186 target(s)...
...updating 3 target(s)...
Link dist\schedule.exe
objs\ScheduleCost.obj : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'x86'

link /nologo /nologo /SUBSYSTEM:CONSOLE /LIBPATH:kit-libs-win/out/lib /LIBPATH:kit-libs-win/out/libpng /LIBPATH:kit-libs-win/out/zlib /out:dist\schedule.exe  objs\Stitch.obj objs\ScheduleCost.obj objs\schedule.obj objs\embed_DAG.obj objs\plan_transfers.obj objs\plan_transfers-draw_beds.obj objs\plan_transfers-run_transfers.obj objs\plan_transfers-best_collapse.obj objs\plan_transfers-best_shift.obj objs\plan_transfers-best_expand.obj objs\plan_transfers-minimize_winding.obj  SDL2main.lib SDL2.lib OpenGL32.lib libpng.lib zlib.lib

...failed Link dist\schedule.exe ...
Link dist\test_flatten.exe
dist\ak-link_chains.obj : fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64'

link /nologo /nologo /SUBSYSTEM:CONSOLE /LIBPATH:kit-libs-win/out/lib /LIBPATH:kit-libs-win/out/libpng /LIBPATH:kit-libs-win/out/zlib /out:dist\test_flatten.exe  objs\test_flatten.obj dist\ak-link_chains.obj  SDL2main.lib SDL2.lib OpenGL32.lib libpng.lib zlib.lib

...failed Link dist\test_flatten.exe ...
Link dist\interface.exe
msvcprt.lib(MSVCP140.dll) : fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'x86'

link /nologo /nologo /SUBSYSTEM:CONSOLE /LIBPATH:kit-libs-win/out/lib /LIBPATH:kit-libs-win/out/libpng /LIBPATH:kit-libs-win/out/zlib /out:dist\interface.exe  dist\ak-trace_graph.obj dist\ak-peel_slice-euclidean.obj dist\ak-trim_model.obj dist\ak-embedded_path.obj dist\ak-build_next_active_chains.obj dist\ak-link_chains.obj dist\ak-extract_level_chains.obj dist\ak-find_first_active_chains.obj dist\ak-sample_chain.obj dist\Interface.obj dist\init.obj dist\load_obj.obj dist\ak-load_constraints.obj dist\ak-embed_constraints.obj dist\ak-interpolate_values.obj objs\kit\kit.obj objs\kit\kit-SDL2.obj objs\kit\Button.obj objs\kit\Load.obj objs\kit\MeshBuffer.obj objs\kit\BoneAnimation.obj objs\kit\GLProgram.obj objs\kit\path.obj objs\kit\load_save_png.obj objs\kit\gl_shims.obj objs\Stitch.obj  SDL2main.lib SDL2.lib OpenGL32.lib libpng.lib zlib.lib

...failed Link dist\interface.exe ...
...failed updating 3 target(s)...

Это говорит о том, что тип машины x64 конфликтует с целевым типом x86, а тип машины x86 конфликтует с целевым типом x64. Это кажется нелогичным, и кажется, что компилятор обнаруживает машину x64, но код предназначен для x86, но также переключается на обнаружение машины x86 с кодом, предназначенным для x64. Я не могу разобраться в этом или понять, как это решить. Это репозиторий git, созданный с использованием jam и компилятора VS; насколько я могу судить, это не правильный проект VS.

...