C++ 使用Visual Studio静态链接时如何链接SFML

C++ 使用Visual Studio静态链接时如何链接SFML,c++,sfml,C++,Sfml,我正在尝试静态链接SFML。这并不是一个真正的问题:只需遵循VisualStudio的SFML开发站点上的说明就可以正常工作。但是,我发现应用程序的其余部分(取决于std库)仍然不是静态链接,而是动态链接。为了静态链接这一部分,我在互联网上发现,我需要将代码生成更改为多线程,在某些特殊情况下,需要将MFC更改为使用静态Windows库 然而,这不起作用。每当我尝试使用/MT标志编译我的项目时,它会给出大约40次以下错误: 检测到“RuntimeLibrary”的错误LNK2038不匹配:值 “M

我正在尝试静态链接SFML。这并不是一个真正的问题:只需遵循VisualStudio的SFML开发站点上的说明就可以正常工作。但是,我发现应用程序的其余部分(取决于std库)仍然不是静态链接,而是动态链接。为了静态链接这一部分,我在互联网上发现,我需要将代码生成更改为多线程,在某些特殊情况下,需要将MFC更改为使用静态Windows库

然而,这不起作用。每当我尝试使用/MT标志编译我的项目时,它会给出大约40次以下错误:

检测到“RuntimeLibrary”的错误LNK2038不匹配:值 “MD_DynamicRelease”与中的值“MT_StaticRelease”不匹配 AI.obj Mockfish_2.1_图形C:\Users\olive\Documents\Visual Studio Stuff\Projects\Mockfish_2.1_Graphics\Mockfish_2.1_Graphics\sfml-system-s.lib(String.cpp.obj)1

然而,当我尝试使用/MT标志编译一个没有SFML的项目时,它不会出现问题。有没有办法将整个解决方案与SFML静态链接


提前谢谢

您必须在启用标志的情况下自己编译SFML。虽然我不知道我是否理解为什么要静态链接MSVC运行时,但您是否在与构建库的Visual Studio版本相同的Visual Studio版本上编译?您可以随时使用源代码与代码一起构建,尽管这取决于许可证,但有些不允许您这样做,有些要求您静态或动态链接等等。@UnholySheep,tbh我不是100%确定。我想到了静态链接应用程序的每个部分,因为我认为某些Windows系统缺少执行此类.exe文件所需的一些dll文件。我错了吗?或者我是否确切地知道哪些dll文件必须包含在exe文件所在的文件夹中?MSVC运行时通常是为用户全局安装的,因为几乎所有本机应用程序都使用它。如果他们没有您的应用程序所需的版本,那么他们自己安装通常会更好(如果您的应用程序提供了确保安装了所需运行时版本的安装程序,则会更好)@UnholySheep谢谢!