gpt4 book ai didi

c++ - 使用静态 SFML 库时无法链接我的项目

转载 作者:行者123 更新时间:2023-11-28 05:19:54 24 4
gpt4 key购买 nike

我正在尝试使用静态 SFML 库在 Visual Studio 中构建一个项目。

我设置了所有相应的链接器设置并且它起作用了:我可以构建一个可执行文件,该文件可以在我的机器上的任何地方运行。但是,我的 friend 无法运行它:他们没有 msvcp140.dll。我不想用可执行文件打包额外的 DLL,也不希望他们在他们的机器上安装额外的运行时库。

所以我假设我需要使用“多线程\MT”设置构建项目(与“多线程 DLL\MD”设置相反)

但切换到该选项会导致 SFML 库出现多个链接器错误,例如:

LNK2038:检测到“RuntimeLibrary”不匹配:值“MD_DynamicRelease”与 Program.obj 中的值“MT_StaticRelease”不匹配

我确定我正在使用静态 SFML 库并且它们已正确链接,但我无法切换到\MT 设置以获得完全可移植性。事实上,使用库的动态版本允许\MT 设置——这显然是无用的,因为现在 SFML 不静态链接。 建议?

最佳答案

您走在正确的轨道上,您只需使用使用相同运行时的 SFML 版本(或自行构建)。否则,链接器会检测到不匹配。

调用 CMake 时,只需将变量 SFML_USE_STATIC_STD_LIBS 设置为 TRUE,例如通过在 SFML 的构建目录中运行 cmake -DSFML_USE_STATIC_STD_LIBS=TRUE .。然后像往常一样构建。

关于c++ - 使用静态 SFML 库时无法链接我的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41726626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com