我对这个库没有任何了解,但这些看似非常标准的链接器错误。将VS 2017(Platform Toolset v141)与使用VS 2015(Plaform Toolset v141)编译的库链接起来应该没有问题。微软在VS 2015和2017年的编译器之间保持了二进制兼容性,这允许将编译的代码混合在同一个可执行文件中。
您的头文件包括( SFML/Network.hpp )您正在使用的类的“promises”实现。链接器的工作是将“promises”与静态lib(.lib)中包含的实际实现相匹配,并将它们组合在一起以创建exe。
SFML/Network.hpp
注意最后一个警告:
Warning LNK4272 library machine type 'x64' conflicts with target machine type 'X86' PortScannerWin32 D:\SFML-2.4.2\lib\sfml-network-d.lib 1
作为第一步,我会将Visual Studio中项目的平台值更改为x64,因此库的“位数”与您的可执行文件的“位数”相匹配。这是本机机器代码,因此生成的代码必须是相同的体系结构。
请注意,更改此设置时,可能需要设置项目属性(如include和库路径)以及链接器输入,以便编译代码。您可以使用项目属性表将x64值设置为x86平台中的值。
您没有链接到正确的库平台。
警告LNK4272库机器类型'x64'与目标机器类型“X86”冲突PortScannerWin32 D:\ SFML-2.4.2 \ lib \ sfml-network-d.lib 1
这表明您在项目为32位时链接到64位库。确保使用正确的库,或更新项目以将其构建为64位项目。