Мой компьютер сборки отличается от моего целевого (хотя оба Windows 10).
Я использую VS2017 с последними обновлениями.
Целевая машина имеет MFC: 14.12.25810
Как мне установить настройки моего проекта, чтобы я мог ориентироваться на эту версию MFC. Я получаю сообщение об ошибке: отсутствует MSVCP140D.dll
И когда я пытаюсь установить распространяемый VS2015 C ++, я получаю сообщение об ошибке конфликтующих версий. Поэтому я бы предпочел прекратить нацеливание на VS2015 и перейти на VS2017 или лучше включить распространяемый файл в папку, которую я устанавливаю.
Вот мои настройки проекта VS2017: (Я также использую последнюю версию Windows SDK).
UPDATE
Я установил Static Linked MFC, который добавил переключатель / MTd в командную строку:
/permissive- /Yu"stdafx.h" /GS /W3 /Zc:wchar_t /ZI /Gm- /Od /sdl /Fd"x64\Debug\vc141.pdb" /Zc:inline /fp:precise /D "_DEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /errorReport:prompt /WX- /Zc:forScope /RTC1 /Gd /MTd /FC /Fa"x64\Debug\" /EHsc /nologo /Fo"x64\Debug\" /Fp"x64\Debug\LinkWareMessageBus.pch" /diagnostics:classic
Однако теперь я получаю кучу ошибок при компиляции:
Код серьезности Описание Состояние подавления строки файла проекта
Предупреждение LNK4098 defaultlib 'MSVCRTD' конфликтует с использованием других библиотек; используйте / NODEFAULTLIB: библиотека LinkWareMessageBus D: \ Source \ LinkWareMessageBus \ LINK 1
Код серьезности Описание Состояние подавления строки файла проекта
Ошибка LNK1120 6 неразрешенных внешних ссылок LinkWareMessageBus D: \ Source \ LinkWareMessageBus \ x64 \ Debug \ LinkWareMessageBus.exe 1
Ошибка LNK2019: неразрешенный внешний символ __imp_calloc, указанный в функции nni_alloc LinkWareMessageBus D: \ Source \ LinkWareMessageBus \ nng.lib (win_thread.c.obj) 1
Ошибка LNK2019: неразрешенный внешний символ __imp_rand_s, на который ссылается функция nni_plat_seed_prng LinkWareMessageBus D: \ Source \ LinkWareMessageBus \ nng.lib (win_rand.c.obj) 1
Ошибка LNK2019: неразрешенный внешний символ __imp_strerror, на который ссылается функция nni_plat_strerror LinkWareMessageBus D: \ Source \ LinkWareMessageBus \ nng.lib (win_debug.c.obj) 1
Ошибка LNK2001, неразрешенный внешний символ __imp_strncpy LinkWareMessageBus D: \ Source \ LinkWareMessageBus \ nng.lib (http_server.c.obj) 1
Ошибка LNK2019: неразрешенный внешний символ __imp_strncpy, на который ссылается функция http_set_header LinkWareMessageBus D: \ Source \ LinkWareMessageBus \ nng.lib (http_msg.c.obj) 1
Ошибка LNK2019: неразрешенный внешний символ __imp__beginthreadex, на который ссылается функция nni_plat_thr_init LinkWareMessageBus D: \ Source \ LinkWareMessageBus \ nng.lib (win_thread.c.obj) 1
Ошибка LNK2019, неразрешенный внешний символ __imp__stricmp, указанный в функции nni_strcasecmp LinkWareMessageBus D: \ Source \ LinkWareMessageBus \ nng.lib (strs.c.obj)
Я также попытался установить «Игнорировать все библиотеки по умолчанию = Нет», но все равно получаю ту же ошибку.
Вот параметры команды LINK:
/OUT:"D:\Source\LinkWareMessageBus\x64\Debug\LinkWareMessageBus.exe" /MANIFEST /NXCOMPAT /PDB:"D:\Source\LinkWareMessageBus\x64\Debug\LinkWareMessageBus.pdb" /DYNAMICBASE "flatbuffers.lib" "nng.lib" "mswsock.lib" "advapi32.lib" "ws2_32.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "odbc32.lib" "odbccp32.lib" /IMPLIB:"nng.lib" /DEBUG /MACHINE:X64 /INCREMENTAL /PGD:"D:\Source\LinkWareMessageBus\x64\Debug\LinkWareMessageBus.pgd" /SUBSYSTEM:CONSOLE /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /ManifestFile:"x64\Debug\LinkWareMessageBus.exe.intermediate.manifest" /ERRORREPORT:PROMPT /NOLOGO /LIBPATH:"D:\Source\LinkWareMessageBus\nng\lib" /LIBPATH:"D:\Source\LinkWareMessageBus\flatbuffers\lib" /TLBID:1