错误LNK2001:无法解析的外部符号web :: websockets :: client :: websocket_callback_client

问题描述

我正在尝试使用cpprestsdk建立简单的websocket连接:

#include <cpprest/ws_client.h>
using namespace web;
using namespace web::websockets::client;

int main(int argc,char* argv[])
{
    websocket_callback_client client;
    client.connect(U("ws://localhost:1234")).then([]() { /* We've finished connecting. */ });
}

但是,当我运行应用程序时,我得到error LNK2001: unresolved external symbol "public: __thiscall web::websockets::client::websocket_callback_client::websocket_callback_client(void)" (??0websocket_callback_client@client@websockets@web@@QAE@XZ)

我在Linker中包含了bcrypt.lib;winhttp.lib;crypt32.lib;,并且在C / C ++->预处理器中也引用了_NO_ASYNCRTIMP;,但是我似乎无法逃脱这个问题。

我可以使用SDK发出简单的http请求,似乎只有websocket引起了问题。我还使用VCPKG安装了此软件包,并且正在使用sdk的Win32版本。

谢谢, 乔治

解决方法

您需要安装websockets功能:

.\vcpkg install cpprestsdk[websockets] --recurse