【问题标题】:g++ unknown /tmp/cc21HhMd.o: In function `main::{lambda( compilation errorg ++未知/tmp/cc21HhMd.o:在函数`main :: {lambda(编译错误
【发布时间】:2019-12-23 08:59:09
【问题描述】:

我尝试使用 g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) 进行编译 一些使用我成功编译的uvlib的开源简单服务器 这是 github 存储库:

https://github.com/Matheus28/ws28

这是编译命令:

g++  echo.cpp -Wall -O0 -g -std=c++1y -I/home/vagrant/libuv/include -Isrc -L/home/vagrant/libuv/build -lssl -lcrypto -luv

但它给了我编译错误:

/tmp/cc21HhMd.o: In function `main::{lambda(ws28::Client*, char const*, unsigned long, int)#4}::operator()(ws28::Client*, char const*, unsigned long, int) const':
/home/vagrant/ws28/echo.cpp:36: undefined reference to `ws28::Client::Send(char const*, unsigned long, unsigned char)'
/tmp/cc21HhMd.o: In function `main::{lambda(uv_timer_s*)#6}::operator()(uv_timer_s*) const':
/home/vagrant/ws28/echo.cpp:58: undefined reference to `ws28::Server::StopListening()'
/tmp/cc21HhMd.o: In function `main':
/home/vagrant/ws28/echo.cpp:16: undefined reference to `ws28::Server::Server(uv_loop_s*, ssl_ctx_st*)'
/home/vagrant/ws28/echo.cpp:64: undefined reference to `ws28::Server::Listen(int, bool)'
/home/vagrant/ws28/echo.cpp:69: undefined reference to `ws28::Server::~Server()'
/home/vagrant/ws28/echo.cpp:69: undefined reference to `ws28::Server::~Server()'
collect2: error: ld returned 1 exit status
make: *** [out] Error 1

我不明白的是他从哪里来处理这个对象的线是什么?:

/tmp/cc21HhMd.o: In function `main::{lambda(ws28::Client*, char const*, unsigned long, int)#4}::operator()(ws28::Client*, char const*, unsigned long, int) const':

【问题讨论】:

    标签: c++ linux compiler-errors g++ c++14


    【解决方案1】:

    要回答您的外部问题:您仍然需要在链接的 GitHub 存储库中编译和链接 src 中的 .cpp 文件。 您没有告诉我们您的构建系统是什么,但我建议将 ws28 src 文件链接到静态库并链接到该库。 然后,您可以通过链接到静态库来编译echo.cpp

    或者,如果您不介意每次都重新编译 ws28 库,您可以简单地使用 g++ echo.cpp src/*.cpp ...

    至于你内心的问题:每个[](...){...} 事物都是lambda expression。编译器构造一个匿名函子,它的 lambda 主体为 operator()。 错误消息中的行号准确地告诉您哪个 lambda 需要哪个函数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-23
      • 1970-01-01
      相关资源
      最近更新 更多