产生原因
这个问题可能是由于链接器发现了在链接时存在冲突的符号,这些符号在默认的运行时库 "LIBCMT" 和其他库中都有定义。当链接器找到多个定义相同的符号时,就会报告冲突。
解决这个问题的常见方法之一是通过使用 /NODEFAULTLIB
选项来排除默认库 "LIBCMT" 的使用,以便在链接时不再考虑它。这样,你可以确保链接器使用其他库中的定义,从而解决符号冲突问题。
冲突可能是因为你在链接时使用了不同版本的库,或者是因为你的代码中使用了某些特定于库的功能,导致了符号冲突。通过排除默认库并确保使用统一的库版本,可以帮助解决这些问题。
解决办法
target_link_options(YourExecutableOrLibrary PRIVATE "/NODEFAULTLIB:LIBCMT")