Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LNK2038 and LNK2005 Error when trying to link a dynamic library that was compiled statically #262

Open
TonyCongqianWang opened this issue Dec 4, 2023 · 3 comments

Comments

@TonyCongqianWang
Copy link

I have compiled a static library that uses the simd library and the library compiles just fine, but when I try to link the library in my main, where I want to test the library function, I get many linker errors. I am not sure what I did wrong and looked at all header files wether I defined some function there or if I missed a pragma once somewhere. I am not sure where the conflict is coming from. Before I added the simd functions (and used opencv instead) everything worked just fine. Additionally I am not even using any of the new functions in my main yet. Just including the header is already the problem.

Any help is appreciated

This is the output:

FAILED: project.exe
cmd.exe /C "cd . && "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe" -E vs_link_exe --intdir=CMakeFiles\FaceAlignment.dir --rc=C:\PROGRA2\WI3CF21\10\bin\1002261.0\x64\rc.exe --mt=C:\PROGRA2\WI3CF21\10\bin\1002261.0\x64\mt.exe --manifests -- C:\PROGRA1\MIB0551\2022\COMMUN1\VC\Tools\MSVC\14381.331\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\FaceAlignment.rsp /out:FaceAlignment.exe /implib:FaceAlignment.lib /pdb:FaceAlignment.pdb /version:0.0 /machine:x64 /INCREMENTAL:NO /subsystem:console && cmd.exe /C "cd /D C:\Users\repo\out\build\x64-Release && C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noprofile -executionpolicy Bypass -file C:/Users/repos/vcpkg/scripts/buildsystems/msbuild/applocal.ps1 -targetBinary C:/Users/repos/facemarkInferenz/out/build/x64-Release/FaceAlignment.exe -installedDir C:/Users/repos/vcpkg/installed/x64-windows/bin -OutVariable out""
LINK: command "C:\PROGRA1\MIB0551\2022\COMMUN1\VC\Tools\MSVC\14381.331\bin\Hostx64\x64\link.exe /nologo @CMakeFiles\FaceAlignment.rsp /out:FaceAlignment.exe /implib:FaceAlignment.lib /pdb:FaceAlignment.pdb /version:0.0 /machine:x64 /INCREMENTAL:NO /subsystem:console /MANIFEST:EMBED,ID=1" failed (exit code 1169) with the following output:

C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseWarpAffine.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseSynetDeconvolution32f.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseThread.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseGemm32f.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseSynetConvolution32f.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseFill.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseSynetAdd.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseSynetActivation.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseWinograd1.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseWinograd2.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseWinograd3.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseSynetConvolution32fBf16.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseCpu.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Base.lib(SimdBaseBFloat16.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\AmxBf16.lib(SimdAmxBf16Cpu.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Avx1.lib(SimdAvx1Cpu.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Avx2.lib(SimdAvx2Cpu.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Avx512bf16.lib(SimdAvx512bf16Cpu.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Avx512bw.lib(SimdAvx512bwCpu.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Avx512vnni.lib(SimdAvx512vnniCpu.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\Sse41.lib(SimdSse41Cpu.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: __cdecl std::_Locinfo::~_Locinfo(void)" (??1_Locinfo@std@@qeaa@XZ) ist bereits in Base.lib(SimdBaseWarpAffine.obj) definiert.
C:\Users\repo\out\build\x64-Release\msvcprt.lib(MSVCP140.dll) : error LNK2005: "protected: virtual __cdecl std::locale::facet::~facet(void)" (??1facet@locale@std@@Meaa@XZ) ist bereits in Base.lib(SimdBaseWarpAffine.obj) definiert.
C:\Users\repo\out\build\x64-Release\msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: virtual __cdecl std::basic_streambuf<char,struct std::char_traits >::~basic_streambuf<char,struct std::char_traits >(void)" (??1?$basic_streambuf@DU?$char_traits@D@std@@@std@@UEAA@XZ) ist bereits in Base.lib(SimdBaseSynetDeconvolution32f.obj) definiert.
C:\Users\repo\out\build\x64-Release\msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: virtual __cdecl std::basic_ios<char,struct std::char_traits >::~basic_ios<char,struct std::char_traits >(void)" (??1?$basic_ios@DU?$char_traits@D@std@@@std@@UEAA@XZ) ist bereits in Base.lib(SimdBaseSynetDeconvolution32f.obj) definiert.
C:\Users\repo\out\build\x64-Release\msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: char __cdecl std::basic_ios<char,struct std::char_traits >::widen(char)const " (?widen@?$basic_ios@DU?$char_traits@D@std@@@std@@QEBADD@Z) ist bereits in Base.lib(SimdBaseSynetDeconvolution32f.obj) definiert.
C:\Users\repo\out\build\x64-Release\msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: void __cdecl std::basic_ostream<char,struct std::char_traits >::_Osfx(void)" (?_Osfx@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXXZ) ist bereits in Base.lib(SimdBaseWarpAffine.obj) definiert.
C:\Users\repo\out\build\x64-Release\msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits > & __cdecl std::basic_ostream<char,struct std::char_traits >::operator<<(unsigned __int64)" (??6?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV01@_K@Z) ist bereits in Base.lib(SimdBaseWarpAffine.obj) definiert.
C:\Users\repo\out\build\x64-Release\msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits > & __cdecl std::basic_ostream<char,struct std::char_traits >::put(char)" (?put@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@D@Z) ist bereits in Base.lib(SimdBaseWarpAffine.obj) definiert.
C:\Users\repo\out\build\x64-Release\msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: class std::basic_ostream<char,struct std::char_traits > & __cdecl std::basic_ostream<char,struct std::char_traits >::flush(void)" (?flush@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@XZ) ist bereits in Base.lib(SimdBaseWarpAffine.obj) definiert.
C:\Users\repo\out\build\x64-Release\msvcprt.lib(MSVCP140.dll) : error LNK2005: "public: virtual __cdecl std::basic_iostream<char,struct std::char_traits >::basic_iostream<char,struct std::char_traits >(void)" (??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ) ist bereits in Base.lib(SimdBaseSynetDeconvolution32f.obj) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale0.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale0.obj) : error LNK2005: "protected: __cdecl std::locale::facet::facet(unsigned __int64)" (??0facet@locale@std@@iEAA@_K@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale0.obj) : error LNK2005: "public: class std::_Yarn & __cdecl std::_Yarn::operator=(char const *)" (??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale0.obj) : error LNK2005: "void __cdecl std::_Facet_Register(class std::_Facet_base *)" (?_Facet_Register@std@@YAXPEAV_Facet_base@1@@z) ist bereits in msvcprt.lib(locale0_implib.obj) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Getgloballocale(void)" (?_Getgloballocale@locale@std@@CAPEAV_Locimp@12@XZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Init(bool)" (?_Init@locale@std@@CAPEAV_Locimp@12@_N@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_ctor(class std::_Locinfo *,char const *)" (?_Locinfo_ctor@_Locinfo@std@@SAXPEAV12@PEBD@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale0.obj) : error LNK2005: "public: static void __cdecl std::_Locinfo::_Locinfo_dtor(class std::_Locinfo *)" (?_Locinfo_dtor@_Locinfo@std@@SAXPEAV12@@z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale0.obj) : error LNK2005: "private: static class std::locale::_Locimp * __cdecl std::locale::_Locimp::_New_Locimp(class std::locale::_Locimp const &)" (?_New_Locimp@_Locimp@locale@std@@CAPEAV123@AEBV123@@z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "protected: __cdecl std::basic_ios<char,struct std::char_traits >::basic_ios<char,struct std::char_traits >(void)" (??0?$basic_ios@DU?$char_traits@D@std@@@std@@iEAA@XZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "protected: __cdecl std::basic_streambuf<char,struct std::char_traits >::basic_streambuf<char,struct std::char_traits >(void)" (??0?$basic_streambuf@DU?$char_traits@D@std@@@std@@iEAA@XZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "public: __cdecl std::_Locinfo::_Locinfo(char const *)" (??0_Locinfo@std@@qeaa@PEBD@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "protected: __cdecl std::locale::facet::facet(unsigned __int64)" (??0facet@locale@std@@iEAA@_K@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "public: __cdecl std::locale::id::operator unsigned __int64(void)" (??Bid@locale@std@@QEAA_KXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits >::_Pninc(void)" (?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits >::eback(void)const " (?eback@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits >::egptr(void)const " (?egptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits >::epptr(void)const " (?epptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits >::gbump(int)" (?gbump@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXH@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "public: class std::locale __cdecl std::ios_base::getloc(void)const " (?getloc@ios_base@std@@qeba?AVlocale@2@XZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits >::gptr(void)const " (?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits >::pptr(void)const " (?pptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits >::setg(char *,char *,char *)" (?setg@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD00@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "protected: void __cdecl std::basic_streambuf<char,struct std::char_traits >::setp(char *,char *)" (?setp@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAXPEAD0@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(cout.obj) : error LNK2005: "public: void __cdecl std::basic_ios<char,struct std::char_traits >::setstate(int,bool)" (?setstate@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXH_N@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "public: __cdecl std::_Locinfo::_Locinfo(char const *)" (??0_Locinfo@std@@qeaa@PEBD@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "protected: __cdecl std::locale::facet::facet(unsigned __int64)" (??0facet@locale@std@@iEAA@_K@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "public: class std::_Yarn & __cdecl std::_Yarn::operator=(char const *)" (??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "public: __cdecl std::locale::id::operator unsigned __int64(void)" (??Bid@locale@std@@QEAA_KXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "public: struct _Cvtvec __cdecl std::_Locinfo::_Getcvt(void)const " (?_Getcvt@_Locinfo@std@@qeba?AU_Cvtvec@@xz) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "public: char const * __cdecl std::_Locinfo::_Getfalse(void)const " (?_Getfalse@_Locinfo@std@@QEBAPEBDXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "public: char const * __cdecl std::_Locinfo::_Gettrue(void)const " (?_Gettrue@_Locinfo@std@@QEBAPEBDXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "private: static void __cdecl std::locale::_Locimp::_Locimp_Addfac(class std::locale::_Locimp *,class std::locale::facet *,unsigned __int64)" (?_Locimp_Addfac@_Locimp@locale@std@@CAXPEAV123@PEAVfacet@23@_K@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits >::_Pninc(void)" (?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "public: int __cdecl std::ios_base::flags(void)const " (?flags@ios_base@std@@QEBAHXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "public: class std::locale __cdecl std::ios_base::getloc(void)const " (?getloc@ios_base@std@@qeba?AVlocale@2@XZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits >::gptr(void)const " (?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "public: __int64 __cdecl std::ios_base::precision(void)const " (?precision@ios_base@std@@QEBA_JXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "public: int __cdecl std::basic_streambuf<char,struct std::char_traits >::sputc(char)" (?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "public: __int64 __cdecl std::ios_base::width(__int64)" (?width@ios_base@std@@QEAA_J_J@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(locale.obj) : error LNK2005: "public: __int64 __cdecl std::ios_base::width(void)const " (?width@ios_base@std@@QEBA_JXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(iosptrs.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlock.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlock.obj) : error LNK2005: "public: __cdecl std::_Lockit::_Lockit(int)" (??0_Lockit@std@@qeaa@H@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlock.obj) : error LNK2005: "public: __cdecl std::_Lockit::
_Lockit(void)" (??1_Lockit@std@@qeaa@XZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: __cdecl std::_Locinfo::_Locinfo(char const *)" (??0_Locinfo@std@@qeaa@PEBD@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "protected: __cdecl std::locale::facet::facet(unsigned __int64)" (??0facet@locale@std@@iEAA@_K@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: class std::_Yarn & __cdecl std::_Yarn::operator=(char const *)" (??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: __cdecl std::locale::id::operator unsigned __int64(void)" (??Bid@locale@std@@QEAA_KXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: struct _Cvtvec __cdecl std::_Locinfo::_Getcvt(void)const " (?_Getcvt@_Locinfo@std@@qeba?AU_Cvtvec@@xz) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: char const * __cdecl std::_Locinfo::_Getfalse(void)const " (?_Getfalse@_Locinfo@std@@QEBAPEBDXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: char const * __cdecl std::_Locinfo::_Gettrue(void)const " (?_Gettrue@_Locinfo@std@@QEBAPEBDXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: unsigned short const * __cdecl std::_Locinfo::_W_Getdays(void)const " (?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: unsigned short const * __cdecl std::_Locinfo::_W_Getmonths(void)const " (?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: int __cdecl std::ios_base::flags(void)const " (?flags@ios_base@std@@QEBAHXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: class std::locale __cdecl std::ios_base::getloc(void)const " (?getloc@ios_base@std@@qeba?AVlocale@2@XZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: __int64 __cdecl std::ios_base::precision(void)const " (?precision@ios_base@std@@QEBA_JXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: __int64 __cdecl std::ios_base::width(__int64)" (?width@ios_base@std@@QEAA_J_J@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(wlocale.obj) : error LNK2005: "public: __int64 __cdecl std::ios_base::width(void)const " (?width@ios_base@std@@QEBA_JXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "public: __cdecl std::_Locinfo::_Locinfo(char const *)" (??0_Locinfo@std@@qeaa@PEBD@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "protected: __cdecl std::locale::facet::facet(unsigned __int64)" (??0facet@locale@std@@iEAA@_K@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "public: class std::_Yarn & __cdecl std::_Yarn::operator=(char const *)" (??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "public: __cdecl std::locale::id::operator unsigned __int64(void)" (??Bid@locale@std@@QEAA_KXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "public: struct _Cvtvec __cdecl std::_Locinfo::_Getcvt(void)const " (?_Getcvt@_Locinfo@std@@qeba?AU_Cvtvec@@xz) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits >::_Pninc(void)" (?_Pninc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEAAPEADXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "public: unsigned short const * __cdecl std::_Locinfo::_W_Getdays(void)const " (?_W_Getdays@_Locinfo@std@@QEBAPEBGXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "public: unsigned short const * __cdecl std::_Locinfo::_W_Getmonths(void)const " (?_W_Getmonths@_Locinfo@std@@QEBAPEBGXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "public: int __cdecl std::ios_base::flags(void)const " (?flags@ios_base@std@@QEBAHXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "public: class std::locale __cdecl std::ios_base::getloc(void)const " (?getloc@ios_base@std@@qeba?AVlocale@2@XZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits >::gptr(void)const " (?gptr@?$basic_streambuf@DU?$char_traits@D@std@@@std@@IEBAPEADXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "public: int __cdecl std::basic_streambuf<char,struct std::char_traits >::sputc(char)" (?sputc@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAAHD@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "public: __int64 __cdecl std::ios_base::width(__int64)" (?width@ios_base@std@@QEAA_J_J@Z) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xlocale.obj) : error LNK2005: "public: __int64 __cdecl std::ios_base::width(void)const " (?width@ios_base@std@@QEBA_JXZ) ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xstol.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xstoul.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xstoll.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xstoull.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xmtx.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xstrcoll.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xdateord.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xwctomb.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xwctomb.obj) : error LNK2005: _Getcvt ist bereits in msvcprt.lib(MSVCP140.dll) definiert.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xwcscoll.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xwcsxfrm.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xgetwctype.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xtowlower.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xtowupper.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(xstrxfrm.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(StlCompareStringA.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(StlCompareStringW.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(StlLCMapStringW.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.
C:\Users\repo\out\build\x64-Release\libcpmt.lib(StlLCMapStringA.obj) : error LNK2038: Konflikt ermittelt für "RuntimeLibrary": Der Wert "MT_StaticRelease" stimmt nicht mit dem Wert "MD_DynamicRelease" in main.cpp.obj überein.

C:\Users\repo\out\build\x64-Release\LINK : warning LNK4098: Standardbibliothek "LIBCMT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden.

@TonyCongqianWang
Copy link
Author

After typing everything out I realized: multiple definitions, that might be because of the multiple simd libraries! And indeed when I remove:

find_library(SIMD_BASE_LIBRARY NAMES base)
find_library(AMXBF16_LIBRARY NAMES amxbf16)
find_library(AVX1_LIBRARY NAMES avx1)
find_library(AVX2_LIBRARY NAMES avx2)
find_library(AVX512BF16_LIBRARY NAMES avx512bf16)
find_library(AVX512BW_LIBRARY NAMES avx512bw)
find_library(AVX512VNNI_LIBRARY NAMES avx512vnni)
find_library(NEON_LIBRARY NAMES neon)
find_library(SSE41_LIBRARY NAMES sse41)
find_library(VMX_LIBRARY NAMES vmx)
find_library(VSX_LIBRARY NAMES vsx)

from my CMakeList the program is compiling and linking again! But now I am wondering, even when I just included the Base.lib, I couldn't link properly, how do I properly include those specialized libraries? Is that just not possible in a shared library on windows?

@ermig1979
Copy link
Owner

Hi. When you want to use Simd.dll you have to link just it. Simd.dll links the rest libraries inside itself.
During static linking you have to link all libraries.

@TonyCongqianWang
Copy link
Author

Hello thank you so much for the quick reply! I do indeed want to link Simd statically to create my own library that exports functions dynamically. The static linking worked with and without the libraries but only when linking my library dynamically in a test program, I received the errors. Do you have any Idea what caused them? I use the newer version installed via vcpgk for x64-Windows

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants