在VisualStudio的2017年SFML静态链接错误

问题描述 投票:1回答:1

我在与游戏编程的一些问题有一段时间了。我不敢说我​​是新来编程,但链接库是一个新的东西给我。所以这是我的问题:当我开始编程的SFML游戏(和我开始使用的.h和.cpp文件,使用SFML 2.5.1 64位),我发现我不能使用这些以及类似的这些功能:

.setColor(Color::Black) / .setFillColor(Color::color)

我得到一个错误说:

市民:__thiscall SF ::颜色::颜色(无符号的字符,无符号的字符,无符号的字符,无符号字符)”(?? 0Color @ SF @@ QAE @ EEEE @ Z)在SFML-图形d.lib已经定义(SFML -graphics-d-2.DLL)

后来我发现,我必须为这个静态链接库来工作,我这样做,但我得到了一个新的错误说:

模块机器类型“64”与目标机器类型“X86”冲突

或许我固定它通过改变“目标机‘未设置’”再下237个错误出现时说:

关于“运行时库”检测到不匹配:值“MDd_DynamicDebug”不匹配值“MTd_StaticDebug”

市民:__cdecl的std :: _ LOCKIT :: _ LOCKIT(INT)”(?? 0_Lockit @ STD @@ QEAA @ H + Z)在libcpmtd.lib已经定义(xlock.obj)

私人:静态类的std ::区域:: _ Locimp * __cdecl的std ::区域:: _初始化(布尔)”(_Init @区域@ STD @@ CAPEAV_Locimp @ 12 @ _N @ Z?)在libcpmtd.lib(locale0已定义。 OBJ)

解析的外部符号__imp_cosf

解析的外部符号__imp_sinf

和更大量的这些...基本上,几乎每行有差错。

我发现了一个可能的解决方案来改变运行时库/ MTD,但它似乎没有工作,因为我得到同样的错误237。

可能是什么问题,如何解决呢?

先感谢您。

c++ windows visual-studio static-libraries sfml
1个回答
0
投票

正如其他人所提到的,你应该针对x86的,因为你的二进制文件这样做。

对于多定义,请确保你没有编译你的.lib文件,但只有SFML头。

不包括DLL的任何地方,并确保你正确的输入设置的链接。

SFML的网站上有,如果你按照它正确的链接正常进行非常彻底的getting started guide

我劝你重新开始,并按照步骤教程一步。此外,请务必阅读一切(跳过教程的一小部分是万恶之源。)

© www.soinside.com 2019 - 2024. All rights reserved.