gpt4 book ai didi

c++ - 使用 seasocks echo 服务器构建错误

转载 作者:行者123 更新时间:2023-11-30 05:13:52 27 4
gpt4 key购买 nike

我正在尝试使用 C++ 中的 seasocks 构建一个简单的回显服务。我已经将 seasocks 编译并安装到/usr/local/* 中,看起来这些库包含得很好,但是我在启动服务器时遇到错误。

这是我正在使用的示例:

    #include "seasocks/PrintfLogger.h"
#include "seasocks/Server.h"
#include "seasocks/StringUtil.h"
#include "seasocks/WebSocket.h"

#include <cstring>
#include <iostream>
#include <memory>
#include <set>
#include <sstream>
#include <string>

/* Simple server that echo any text or binary WebSocket messages back. */

using namespace seasocks;

class EchoHandler: public WebSocket::Handler {
public:
virtual void onConnect(WebSocket* /*connection*/) {
}

virtual void onData(WebSocket* connection, const uint8_t* data, size_t length) {
connection->send(data, length); // binary
}

virtual void onData(WebSocket* connection, const char* data) {
connection->send(data); // text
}

virtual void onDisconnect(WebSocket* /*connection*/) {
}
};

int main(int /*argc*/, const char* /*argv*/[]) {
std::shared_ptr<Logger> logger(new PrintfLogger(Logger::Level::DEBUG));

Server server(logger);
std::shared_ptr<EchoHandler> handler(new EchoHandler());
server.addWebSocketHandler("/", handler);
server.serve("/dev/null", 8000);
return 0;
}

这些是我的构建错误:

    04:40:40 **** Build of configuration Debug for project HSServer ****
make all
Building file: ../src/HSServer.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/HSServer.d" -MT"src/HSServer.o" -o "src/HSServer.o" "../src/HSServer.cpp"
Finished building: ../src/HSServer.cpp

Building target: HSServer
Invoking: GCC C++ Linker
g++ -o "HSServer" ./src/HSServer.o
./src/HSServer.o: In function `main':
/home/xnite/workspace/HSServer/Debug/../src/HSServer.cpp:37: undefined reference to `seasocks::Server::Server(std::shared_ptr<seasocks::Logger>)'
/home/xnite/workspace/HSServer/Debug/../src/HSServer.cpp:39: undefined reference to `seasocks::Server::addWebSocketHandler(char const*, std::shared_ptr<seasocks::WebSocket::Handler>, bool)'
/home/xnite/workspace/HSServer/Debug/../src/HSServer.cpp:40: undefined reference to `seasocks::Server::serve(char const*, int)'
/home/xnite/workspace/HSServer/Debug/../src/HSServer.cpp:37: undefined reference to `seasocks::Server::~Server()'
/home/xnite/workspace/HSServer/Debug/../src/HSServer.cpp:37: undefined reference to `seasocks::Server::~Server()'
collect2: error: ld returned 1 exit status
make: *** [makefile:47: HSServer] Error 1

04:40:45 Build Finished (took 5s.239ms)

最佳答案

您必须链接库。例如 -

g++ -o myfile objfileA.o objfileB.o -lLibName

这里的 libName 是库的名称。对于 Linux 中的 ex - 对于库 libfoo.so,您只需编写 -lfoo。但在 Windows 中它将是 foo.lib。您可能必须使用 -L‹path_to_dir› 添加目录,并且在 -l 或 -L 之后没有任何空格来定位文件。

如果使用 IDE,请根据 IDE 在其他库目录下指定它。

关于c++ - 使用 seasocks echo 服务器构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43705100/

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