Вам нужно просто удалить arm64 из Valid Architecture и установить NO только для активной архитектуры. Теперь просто очистите, создайте и запустите. Вы не увидите эту ошибку еще раз.
:) KP
Я только отвечаю, чтобы вы поняли, что ваше чувство не использовать статические библиотеки правильное.
DLRdave сказал это уже в комментариях, ваша система сборки подвергается злоупотреблению файлами LIB. LIB-файл очень похож на настоящую библиотеку, вы просто получаете то, о чем просите, а не все в библиотеке.
Если в наборе инструментов Visual & nbsp; 2008 есть пробел, значит, он не поддерживает частичное связывание. Входные данные в частичную ссылку представляют собой набор OBJ-файлов, а выходные данные представляют собой один OBJ-файл, который содержит весь код и данные из входных OBJ-файлов.
Различие между архивом / библиотекой и частичной ссылкой описано для g ++ в ответе на этот вопрос: частичное связывание g ++ вместо архивов? , где компоновщик GNU ( ld ]) поддерживает частичное связывание.
Что касается возможного краткосрочного смягчения - лично я попытался бы использовать сценарии для динамической сборки файла DEF во время сборки, используя LIB /List
или DUMPBIN /ARCHIVEMEMBERS
для получения файлов obj и LIB /DEF
для генерации DEF файл из этого списка. Или, как я предполагаю, используется _declspec(dllexport
), вы могли бы также использовать DUMPBIN /DIRECTIVES
, искать /EXPORT
и создавать файл DEF самостоятельно.