Я создал пакет nuget для C ++ protobuf для версии 3.10.0 и добавил его в свой существующий проект vs2019, который прекрасно скомпилировался перед его добавлением. После добавления пакета protobuf я получаю большое количество неразрешенных внешних ошибок, которые кажутся несвязанными:
1> libconcrtd.lib (FreeVirtualProcessorRoot.obj): ошибка LNK2001: неразрешенный внешний символ _purecall 1> libconcrtd.lib (ThreadProxy.obj): ошибка LNK2001: неразрешенный внешний символ _purecall 1> libconcrtd.lib (UMSSchedulerProxy.obj): ошибка LNK2001: неразрешенный внешний символ _purecall 1> libconcrtd.lib (UMSFreeVirtualProcessorRoot.obj): _connure 1.lib (UMSThreadScheduler.obj): ошибка LNK2001: неразрешенный внешний символ _purecall 1> libconcrtd.lib (TransmogrifiedPrimary.obj): ошибка LNK2001: неразрешенный внешний символ _purecall 1> libconcrtd.lib (внешний символ. Chores.obj1): ошибка NN_purecall 1> libconcrtd.lib (VirtualProcessorRoot.obj): ошибка LNK2001: неразрешенный внешний символ _purecall 1> libconcrtd.lib (InternalContextBase.obj): ошибка LNK2001: неразрешенный внешний символ _purecall 1> libconcrtd.lib (схемаroupBase.obj): ошибка LNK2001: неразрешенный внешний символ _purecall 1> libconcrtd.lib (ExternalContextBase.obj): ошибка LNK2001: неразрешенный внешний символ _purecall. ,.
Файл моих целей выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?><Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<PropertyPageSchema Include="$(MSBuildThisFileDirectory)package.xml" />
</ItemGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<!-- static libraries -->
<!-- x64 -->
<ItemDefinitionGroup Condition="'$(Platform)' == 'x64' And $(Configuration.IndexOf('Release')) != -1 And '$(Linkage-protobuf)' == 'static'">
<Link>
<AdditionalDependencies>$(MSBuildThisFileDirectory)lib\x64\Release\libprotobuf.lib;$(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Platform)' == 'x64' And $(Configuration.IndexOf('Debug')) != -1 And '$(Linkage-protobuf)' == 'static'">
<Link>
<AdditionalDependencies>$(MSBuildThisFileDirectory)lib\x64\Debug\libprotobufd.lib;$(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<!-- Win32 -->
<ItemDefinitionGroup Condition="'$(Platform)' == 'Win32' And $(Configuration.IndexOf('Release')) != -1 And '$(Linkage-protobuf)' == 'static'">
<Link>
<AdditionalDependencies>$(MSBuildThisFileDirectory)lib\Win32\Release\libprotobuf.lib;$(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Platform)' == 'Win32' And $(Configuration.IndexOf('Debug')) != -1 And '$(Linkage-protobuf)' == 'static'">
<Link>
<AdditionalDependencies>$(MSBuildThisFileDirectory)lib\Win32\Debug\libprotobufd.lib;$(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
Подобные вещи работали раньше, но на этот раз в моем проекте есть несколько вещей, отличающихся от того, что яне могу не думать, что это применимо. Вот мои настройки проекта (при условии отладки / x64): Protobuf статически связан Linker-> Input-> Дополнительные зависимости: Nafxcw.lib; Libcmt.lib Linker-> Input-> Ignore Specific Default Library Nafxcw.lib; Libcmt.lib C/ C ++ -> Препроцессор (добавлено) WIN32_LEAN_AND_MEAN (для устранения проблем с переопределением winsock) C / C ++ -> Генерация кода-> Библиотека времени выполнения -> / MTd
Я с удовольствием предоставлю любую дополнительную информацию, которую вы все считаете подходящей,Спасибо.