/ MT无法解析的Visual C运行时函数

tyrel

我正在将一个大型Visual Studio解决方案从VS 2010转换为VS2017。该解决方案中的一个项目仅包含C,不包含C ++,并且进行编译以/MT与多线程C运行时静态链接。

不幸的是,即使libcmt.lib在库列表中,链接器也似乎找不到C运行时函数链接器实际上说该lib在详细输出中未使用。

链接器为什么找不到功能?

输出:

redacted.obj : error LNK2019: unresolved external symbol memcpy referenced in function FsConvertAndFreeInformation
redacted.obj : error LNK2019: unresolved external symbol memset referenced in function FsInitDebugSocket
msvcrt.lib(utility_desktop.obj) : error LNK2001: unresolved external symbol memset
redacted.obj : error LNK2019: unresolved external symbol wcsstr referenced in function FsGetTokenInformation
redacted.obj : error LNK2019: unresolved external symbol wcscat_s referenced in function FsGetTokenInformation
redacted.obj : error LNK2019: unresolved external symbol wcsncpy_s referenced in function FsGetTokenInformation
redacted.obj : error LNK2019: unresolved external symbol _wcsdup referenced in function LsaApLogonUserEx2
redacted.obj : error LNK2019: unresolved external symbol wcscpy referenced in function SetUnicodeString
redacted.obj : error LNK2019: unresolved external symbol wcslen referenced in function FsDebugLog
redacted.obj : error LNK2019: unresolved external symbol _wcsicmp referenced in function LsaApLogonUserEx2
redacted.obj : error LNK2019: unresolved external symbol strlen referenced in function AnsiToUnicode
redacted.obj : error LNK2019: unresolved external symbol free referenced in function LsaApLogonUserEx2
redacted.obj : error LNK2019: unresolved external symbol mbstowcs referenced in function AnsiToUnicode
redacted.obj : error LNK2019: unresolved external symbol __stdio_common_vswprintf referenced in function _vsnwprintf_l
msvcrt.lib(dll_dllmain.obj) : error LNK2019: unresolved external symbol _initterm referenced in function "int __cdecl dllmain_crt_process_attach(struct HINSTANCE__ * const,void * const)" (?dllmain_crt_process_attach@@YAHQEAUHINSTANCE__@@QEAX@Z)
msvcrt.lib(dll_dllmain.obj) : error LNK2019: unresolved external symbol _initterm_e referenced in function "int __cdecl dllmain_crt_process_attach(struct HINSTANCE__ * const,void * const)" (?dllmain_crt_process_attach@@YAHQEAUHINSTANCE__@@QEAX@Z)
msvcrt.lib(dll_dllmain.obj) : error LNK2001: unresolved external symbol __C_specific_handler
msvcrt.lib(utility.obj) : error LNK2001: unresolved external symbol __C_specific_handler
msvcrt.lib(tncleanup.obj) : error LNK2019: unresolved external symbol __std_type_info_destroy_list referenced in function "void __cdecl __scrt_uninitialize_type_info(void)" (?__scrt_uninitialize_type_info@@YAXXZ)
msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol _seh_filter_dll referenced in function __scrt_dllmain_exception_filter
msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol _configure_narrow_argv referenced in function "public: static int __cdecl __scrt_narrow_argv_policy::configure_argv(void)" (?configure_argv@__scrt_narrow_argv_policy@@SAHXZ)
msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol _initialize_narrow_environment referenced in function "public: static int __cdecl __scrt_narrow_environment_policy::initialize_environment(void)" (?initialize_environment@__scrt_narrow_environment_policy@@SAHXZ)
msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol _initialize_onexit_table referenced in function __scrt_initialize_onexit_tables
msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol _register_onexit_function referenced in function _onexit
msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol _execute_onexit_table referenced in function __scrt_dllmain_uninitialize_c
msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol _crt_atexit referenced in function _onexit
msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol _crt_at_quick_exit referenced in function at_quick_exit
msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol _cexit referenced in function __scrt_dllmain_uninitialize_c
msvcrt.lib(utility_desktop.obj) : error LNK2019: unresolved external symbol terminate referenced in function __scrt_unhandled_exception_filter

Unused libraries:
  C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\x64\odbc32.lib
  C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\x64\odbccp32.lib
  C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.15.26726\lib\x64\libcmt.lib
  C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\x64\user32.lib
  C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\x64\gdi32.lib
  C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\x64\winspool.lib
  C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\x64\comdlg32.lib
  C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\x64\shell32.lib
  C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\x64\ole32.lib
  C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\x64\oleaut32.lib
  C:\Program Files (x86)\Windows Kits\10\lib\10.0.17134.0\um\x64\uuid.lib

编译器命令行选项:

/FR"x64\ReleaseU\"
/GS
/W2
/Zc:wchar_t
/Zi
/Gm-
/Od
/Fd"x64\ReleaseU\vc141.pdb"
/Zc:inline
/fp:precise
/D "WIN32"
/D "NDEBUG"
/D "_WINDOWS"
/D "_MBCS"
/D "_USRDLL"
/D "SECURITY_WIN32"
/D "REDACTED_EXPORTS"
/D "UNICODE"
/D "_BIND_TO_CURRENT_VCLIBS_VERSION=1"
/D "_VC80_UPGRADE=0x0600"
/D "_WINDLL"
/D "_UNICODE"
/errorReport:prompt
/WX
/Zc:forScope
/Gd
/MT
/FC
/Fa"x64\ReleaseU\"
/EHsc
/nologo
/Fo"x64\ReleaseU\"
/Fp"x64\ReleaseU\redacted.pch"
/diagnostics:classic 

链接器命令行选项:

/OUT:"C:\Devel\redacted\src\x64\ReleaseU\redacted.dll"
/MANIFEST
/PDB:"C:\Devel\redacted\src\pdbmap/x64/redacted.pdb"
/DYNAMICBASE:NO
"odbc32.lib" "odbccp32.lib" "netapi32.lib" "msvcrt.lib" "Ws2_32.lib" "authz.lib" "libcmt.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "comdlg32.lib" "advapi32.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib"
/DEF:".\redacted.def"
/IMPLIB:"C:\Devel\redacted\src\x64\ReleaseU\redacted.lib"
/DEBUG
/DLL 
/MACHINE:X64 
/INCREMENTAL:NO 
/PGD:"C:\Devel\redacted\src\x64\ReleaseU\redacted.pgd" 
/MANIFESTUAC:"level='asInvoker' uiAccess='false'" 
/ManifestFile:"x64\ReleaseU\redacted.dll.intermediate.manifest" 
/MAP":C:\Devel\redacted\src\pdbmap/x64/redacted.map" 
/ERRORREPORT:PROMPT 
/NOLOGO 
/VERBOSE 
/NODEFAULTLIB 
/TLBID:1 
tyrel

事实证明,这些函数已在Visual C ++ 2015中移至vcruntime.lib和中libucrt.lib

由于该项目具有/NODEFAULTLIB,因此需要将这两个库添加到附加依赖项中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

“函数运行时无法启动”

在运行时解析函数,而不是在编译 C++

为什么Linux无法捕获C ++运行时错误,例如使用浅拷贝构造函数?

如何在运行时解析函数?

在运行时对函数声明进行解析和执行

在函数句柄运行时进行Matlab解析

Powershell:批量运行时无法调用函数

GCC运行时库与Microsoft Visual C ++运行时可再发行组件

选择哪个Visual C / C ++运行时库?

Visual C ++:运行时刷新内存调试器

在Visual C#中运行时进行编译

C# 方法解析在运行时无法按预期工作

System.Data.Sqlite-无法安装Microsoft Visual C ++运行时

Microsoft Visual C++ 2015 运行时无法完成安装?

无法在azure函数运行时v1中创建python函数应用

将泛型类型的实例返回到运行时解析的函数

使用仅在运行时初始化的函数指针解析 [-Werror=maybe-uninitialized]

函数运行时无法启动 - 无法加载类型“Microsoft.Azure.ServiceBus.Management.ManagementClient”

无法解析com.squareup.sqldelight:运行时:1.1.3

运行时错误无法解析GoogleMap的所有参数:(?,?)

运行时scanf函数上的垃圾值无法正常工作

无法从twilio函数运行时客户端设置同步文档的ttl

Visual Studio 2010无法安装VC 9.0运行时

运行时动态功能解析

Webpack运行时条件模块解析

运行时未部署Visual Studio

从SSH运行时无法识别Powershell

TensorFlow运行时无法启动Tensorboard

中断运行时Arduino无法入睡