chenshuo / muduo

Event-driven network library for multi-threaded Linux server in C++11
https://github.com/chenshuo/muduo
Other
14.49k stars 5.12k forks source link

编译错误 #507

Closed tangtgithub closed 3 years ago

tangtgithub commented 3 years ago

ubuntu16.04 cpp11 muduo Version 2.0.0 cmake version 3.5.1 gcc version 7.4.0 boost 1.58

muduo/contrib/hiredis/Hiredis.cc:47:74: error: 'const class muduo::net::InetAddress' has no member named 'toPort' google/protobuf/stubs/strutil.h:92:47: error: conversion to 'char' from 'int' may alter its value [-Werror=conversion]

chenshuo commented 3 years ago

Thanks for reporting this. The function has changed its name to port() in commit f5174cdf. Please kindly update the client code. Send a PR if you wish.

tangtgithub commented 3 years ago

Thank you. But after operating according to your method, there are still problems.

/home/tangt/openSourceCode/newestmuduo/muduo/contrib**/hiredis/Hiredis.cc:47:74: error: 'const class muduo::net::InetAddress' has no member named 'toPort' context = ::redisAsyncConnect(serverAddr_.toIp().cstr(), serverAddr.toPort()); ^ contrib/hiredis/CMakeFiles/mrediscli.dir/build.make:62: recipe for target 'contrib/hiredis/CMakeFiles/mrediscli.dir/Hiredis.cc.o' failed make[2]: ** [contrib/hiredis/CMakeFiles/mrediscli.dir/Hiredis.cc.o] Error 1 CMakeFiles/Makefile2:2192: recipe for target 'contrib/hiredis/CMakeFiles/mrediscli.dir/all' failed make[1]: [contrib/hiredis/CMakeFiles/mrediscli.dir/all] Error 2 Makefile:138: recipe for target 'all' failed make: *** [all] Error 2 tangt@jichepingtai-lg:~/openSourceCode/newest_muduo/muduo$ tangt@jichepingtai-lg:~/openSourceCode/newest_muduo/muduo$ tangt@jichepingtai-lg:~/openSourceCode/newest_muduo/muduo$ git log commit f5174cdfa5f9216de1b27cee0be4b155edf51376 Author: Shuo Chen chenshuo@chenshuo.com Date: Tue Feb 23 17:37:15 2021 -0800

Fix sockets::toIpPort() for IPv6. (#490)
chenshuo commented 3 years ago

Try changing Hiredis.cc like this:

diff --git a/contrib/hiredis/Hiredis.cc b/contrib/hiredis/Hiredis.cc
index 3b62930..07541d3 100644
--- a/contrib/hiredis/Hiredis.cc
+++ b/contrib/hiredis/Hiredis.cc
@@ -44,7 +44,7 @@ void Hiredis::connect()
 { 
   assert(!context_);

-  context_ = ::redisAsyncConnect(serverAddr_.toIp().c_str(), serverAddr_.toPort());
+  context_ = ::redisAsyncConnect(serverAddr_.toIp().c_str(), serverAddr_.port());

   context_->ev.addRead = addRead;
   context_->ev.delRead = delRead;
chenshuo commented 3 years ago

Fixed in dc02f99.