检测到'vccorlib_lib_should_be_specified_before_msvcrt_lib_to_linker'不匹配:值'1'与msvcrtd.lib中的值'0'不匹配

Sus*_*ora 1 c c++ windows-runtime uwp

我有一个UWP的C库项目.有些C文件调用CPP文件中定义的C++ WINRT函数.它正在成功编译并生成库文件(LIB).我在Visual Studio 2015中使用更新1进行编译,目标平台是10.0.10240.0

但是,我想生成DLL而不是LIB文件.这是我更改项目所做的更改,以便生成DLL而不是LIB.

Try1:那么,在启动项目中,在配置属性=>常规中,我将配置从静态库更改为动态库.

在所有项目中,我从多线程调试(/ MTd)更改为多线程调试DLL(/ MDd).

Try2:创建了一个新项目Windows Universal Project,并将创建LIB的项目中的所有文件添加到此项目中.不过,我收到以下错误.

现在,我收到了错误

vccorlibd.lib(init.obj) : error LNK2038: mismatch detected for 'vccorlib_lib_should_be_specified_before_msvcrt_lib_to_linker': value '1' doesn't match value '0' in msvcrtd.lib(app_appinit.obj)
vccorlibd.lib(init.obj) : error LNK2005: __crtWinrtInitType already defined in msvcrtd.lib(app_appinit.obj)
msvcrtd.lib(initializers.obj) : warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
Run Code Online (Sandbox Code Playgroud)

任何建议如何解决这个问题.

Man*_*men 8

我有相同的问题并使用链接器标志修复它:

/nodefaultlib:vccorlib /nodefaultlib:msvcrt vccorlib.lib msvcrt.lib
Run Code Online (Sandbox Code Playgroud)

对于调试版本,您可以使用:

/nodefaultlib:vccorlibd /nodefaultlib:msvcrtd vccorlibd.lib msvcrtd.lib
Run Code Online (Sandbox Code Playgroud)