2014-03-06 68 views
0

編譯(在VS中運行構建)我的最新項目時出現以下錯誤。 我已閱讀此網站上的其他問題/答案,但到目前爲止沒有運氣來解決我的問題。Visual Studio 2013鏈接器混淆

我知道我的問題與鏈接不同的庫有關,但爲什麼我得到這個問題我不知道。

之前編譯工作正常,但沒有我不能擺脫錯誤。

任何幫助都可以。

這是我的錯誤列表和配置文件

>1>msvcprt.lib(MSVCP100.dll) : error LNK2005: "void __cdecl std::_Xlength_error(char const *)" ([email protected]@@[email protected]) already defined in libcpmt.lib(xthrow.obj) 
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: "public: __thiscall std::exception::exception(char const * const &)" ([email protected]@@[email protected]@Z) already defined in LIBCMT.lib(stdexcpt.obj) 
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: "public: virtual __thiscall std::exception::~exception(void)" ([email protected]@@[email protected]) already defined in LIBCMT.lib(stdexcpt.obj) 
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: __vsnprintf_s already defined in LIBCMT.lib(vsnprnc.obj) 
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: "public: __thiscall std::exception::exception(class std::exception const &)" ([email protected]@@[email protected]@@Z) already defined in LIBCMT.lib(stdexcpt.obj) 
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _atoi already defined in LIBCMT.lib(atox.obj) 
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _memmove already defined in LIBCMT.lib(memmove.obj) 
1>MSVCRT.lib(MSVCR100.dll) : error LNK2005: _printf already defined in LIBCMT.lib(printf.obj) 
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: __thiscall type_info::type_info(class type_info const &)" ([email protected]@[email protected]@@Z) already defined in LIBCMT.lib(typinfo.obj) 
1>MSVCRT.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __thiscall type_info::operator=(class type_info const &)" ([email protected]@[email protected]@@Z) already defined in LIBCMT.lib(typinfo.obj) 
1>LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library 

>

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <ItemGroup Label="ProjectConfigurations"> 
    <ProjectConfiguration Include="Debug|Win32"> 
     <Configuration>Debug</Configuration> 
     <Platform>Win32</Platform> 
    </ProjectConfiguration> 
    <ProjectConfiguration Include="Release|Win32"> 
     <Configuration>Release</Configuration> 
     <Platform>Win32</Platform> 
    </ProjectConfiguration> 
    </ItemGroup> 
    <PropertyGroup Label="Globals"> 
    <ProjectGuid>{94CF9190-4DC8-4B09-9579-CF385879D9B5}</ProjectGuid> 
    <Keyword>Win32Proj</Keyword> 
    <RootNamespace>OC</RootNamespace> 
    <SccProjectName>SAK</SccProjectName> 
    <SccAuxPath>SAK</SccAuxPath> 
    <SccLocalPath>SAK</SccLocalPath> 
    <SccProvider>SAK</SccProvider> 
    <ProjectName>OCP4NGX</ProjectName> 
    </PropertyGroup> 
    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> 
    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> 
    <ConfigurationType>Application</ConfigurationType> 
    <UseDebugLibraries>true</UseDebugLibraries> 
    <PlatformToolset>v100</PlatformToolset> 
    <CharacterSet>MultiByte</CharacterSet> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> 
    <ConfigurationType>Application</ConfigurationType> 
    <UseDebugLibraries>false</UseDebugLibraries> 
    <PlatformToolset>v100</PlatformToolset> 
    <WholeProgramOptimization>true</WholeProgramOptimization> 
    <CharacterSet>MultiByte</CharacterSet> 
    </PropertyGroup> 
    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> 
    <ImportGroup Label="ExtensionSettings"> 
    </ImportGroup> 
    <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> 
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 
    </ImportGroup> 
    <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> 
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 
    </ImportGroup> 
    <PropertyGroup Label="UserMacros" /> 
    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> 
    <LinkIncremental>true</LinkIncremental> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> 
    <LinkIncremental>false</LinkIncremental> 
    <IgnoreImportLibrary>true</IgnoreImportLibrary> 
    </PropertyGroup> 
    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> 
    <ClCompile> 
     <PrecompiledHeader>NotUsing</PrecompiledHeader> 
     <WarningLevel>Level3</WarningLevel> 
     <Optimization>Disabled</Optimization> 
     <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> 
     <SDLCheck>true</SDLCheck> 
     <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> 
    </ClCompile> 
    <Link> 
     <SubSystem>Windows</SubSystem> 
     <GenerateDebugInformation>true</GenerateDebugInformation> 
     <AdditionalOptions>simconnect.lib wsock32.lib %(AdditionalOptions)</AdditionalOptions> 
     <AdditionalLibraryDirectories>C:\Program Files %28x86%29\Lockheed Martin\Prepar3D v2 SDK 2.1.9936.0\Utilities\SimConnect SDK\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> 
    </Link> 
    </ItemDefinitionGroup> 
    <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> 
    <ClCompile> 
     <WarningLevel>Level3</WarningLevel> 
     <PrecompiledHeader>NotUsing</PrecompiledHeader> 
     <Optimization>MaxSpeed</Optimization> 
     <FunctionLevelLinking>true</FunctionLevelLinking> 
     <IntrinsicFunctions>true</IntrinsicFunctions> 
     <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions)</PreprocessorDefinitions> 
     <SDLCheck>true</SDLCheck> 
     <MinimalRebuild>true</MinimalRebuild> 
     <RuntimeLibrary>MultiThreaded</RuntimeLibrary> 
     <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed> 
    </ClCompile> 
    <Link> 
     <SubSystem>Windows</SubSystem> 
     <GenerateDebugInformation>true</GenerateDebugInformation> 
     <EnableCOMDATFolding>true</EnableCOMDATFolding> 
     <OptimizeReferences>true</OptimizeReferences> 
     <AdditionalLibraryDirectories>C:\Program Files %28x86%29\Lockheed Martin\Prepar3D v2 SDK 2.1.9936.0\Utilities\SimConnect SDK\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> 
     <AdditionalOptions>simconnect.lib wsock32.lib %(AdditionalOptions)</AdditionalOptions> 
    </Link> 
    </ItemDefinitionGroup> 
    <ItemGroup> 
    <Text Include="OC.txt" /> 
    <Text Include="ReadMe.txt" /> 
    </ItemGroup> 
    <ItemGroup> 
    <ClInclude Include="err.h" /> 
    <ClInclude Include="IOCPClient.h" /> 
    <ClInclude Include="logger.h" /> 
    <ClInclude Include="NGXConnector.h" /> 
    <ClInclude Include="OC.h" /> 
    <ClInclude Include="PMDG_NGX_SDK.h" /> 
    <ClInclude Include="resource.h" /> 
    <ClInclude Include="settings.h" /> 
    <ClInclude Include="simconnect.h" /> 
    <ClInclude Include="stdafx.h" /> 
    <ClInclude Include="targetver.h" /> 
    </ItemGroup> 
    <ItemGroup> 
    <ClCompile Include="err.cpp" /> 
    <ClCompile Include="IOCPClient.cpp" /> 
    <ClCompile Include="logger.cpp" /> 
    <ClCompile Include="NGXConnector.cpp" /> 
    <ClCompile Include="OC.cpp" /> 
    <ClCompile Include="settings.cpp" /> 
    <ClCompile Include="stdafx.cpp"> 
     <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> 
     <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> 
    </ClCompile> 
    <ClCompile Include="Var_Event.cpp" /> 
    </ItemGroup> 
    <ItemGroup> 
    <ResourceCompile Include="OC.rc" /> 
    </ItemGroup> 
    <ItemGroup> 
    <Image Include="OC.ico" /> 
    <Image Include="small.ico" /> 
    </ItemGroup> 
    <ItemGroup> 
    <None Include="OCrc.txt" /> 
    </ItemGroup> 
    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 
    <ImportGroup Label="ExtensionTargets"> 
    </ImportGroup> 
</Project> 
+0

你需要洛克希德馬丁公司的Prepar3D SDK嗎? –

+0

它至少看起來你的鏈接是一個obj或lib,它是爲使用靜態CRT而配置的,而你的項目正在與動態CRT鏈接。他們的SDK是否包含綁定到動態CRT的lib/dll對?或者您最近是否更改了項目使用的代碼生成風格? – WhozCraig

+0

洛克希德馬丁,他們不是製造戰爭武器嗎?我認爲回答這個問題將與我個人的道德規範衝突:-P –

回答