C++ VisualStudio:;错误LNK2005:“已定义strchr”;使用/MT时

C++ VisualStudio:;错误LNK2005:“已定义strchr”;使用/MT时,c++,C++,我正在VisualStudio中构建一个应用程序,但在其他计算机上没有运行它。当我尝试将/MT中的项目编译为运行时库时,仍然会得到以下输出: error LNK2005: _strrchr already defined in LIBCMT.lib(strrchr.obj) warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library error LNK11

我正在VisualStudio中构建一个应用程序,但在其他计算机上没有运行它。当我尝试将/MT中的项目编译为运行时库时,仍然会得到以下输出:

error LNK2005: _strrchr already defined in LIBCMT.lib(strrchr.obj)
warning LNK4098: defaultlib 'msvcrt.lib' conflicts with use of other libs; use /NODEFAULTLIB:library
error LNK1169: one or more multiply defined symbols found

我不知道为什么在我将运行时库从/MD切换到/MT时仍然收到这些消息。大多数解决此错误消息的方法都只涉及切换运行时库,但我已经这样做了。我使用的唯一其他库是SDL1.2。

您使用的是静态SDL库吗?我假设问题是您正在链接另一个使用/MD或/MDd编译的静态库。确保所有库依赖项(及其所有依赖项)都已使用/MT编译。

您还必须为其他库设置
/MT
。或者,您可以将可再发行的CRT DLL与您的程序打包在一起。