facebook / CacheLib

Pluggable in-process caching engine to build and scale high performance services
https://www.cachelib.org
Apache License 2.0
1.18k stars 254 forks source link

build error about fizz on ubuntu22.04 #295

Closed idealLight closed 5 months ago

idealLight commented 5 months ago

my env:

Ubuntu 22.04.4 LTS (GNU/Linux 6.5.0-25-generic x86_64)
g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0

I build the latest cachelib:

git clone https://github.com/facebook/CacheLib
cd CacheLib
./contrib/build.sh -j -T

got error when build fizz:

[ 77%] Building CXX object CMakeFiles/fizz.dir/client/PskSerializationUtils.cpp.o
[ 78%] Building CXX object CMakeFiles/fizz.dir/client/SynchronizedLruPskCache.cpp.o
[ 80%] Building CXX object CMakeFiles/fizz.dir/client/EarlyDataRejectionPolicy.cpp.o
[ 81%] Building CXX object CMakeFiles/fizz.dir/tool/FizzCommandCommon.cpp.o
[ 82%] Building CXX object CMakeFiles/fizz.dir/util/FizzUtil.cpp.o
[ 83%] Building CXX object CMakeFiles/fizz.dir/util/Tracing.cpp.o
In file included from /root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.cpp:9:
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:44:30: error: ‘SSLContext’ is not a member of ‘folly’
   44 |       const std::list<folly::SSLContext::NextProtocolsItem>& list);
      |                              ^~~~~~~~~~
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:44:59: error: template argument 1 is invalid
   44 |       const std::list<folly::SSLContext::NextProtocolsItem>& list);
      |                                                           ^
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:44:59: error: template argument 2 is invalid
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:44:30: error: ‘SSLContext’ is not a member of ‘folly’
   44 |       const std::list<folly::SSLContext::NextProtocolsItem>& list);
      |                              ^~~~~~~~~~
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:44:59: error: template argument 1 is invalid
   44 |       const std::list<folly::SSLContext::NextProtocolsItem>& list);
      |                                                           ^
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:44:59: error: template argument 2 is invalid
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:44:30: error: ‘SSLContext’ is not a member of ‘folly’
   44 |       const std::list<folly::SSLContext::NextProtocolsItem>& list);
      |                              ^~~~~~~~~~
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:44:59: error: template argument 1 is invalid
   44 |       const std::list<folly::SSLContext::NextProtocolsItem>& list);
      |                                                           ^
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:44:59: error: template argument 2 is invalid
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:44:13: error: invalid template-id
   44 |       const std::list<folly::SSLContext::NextProtocolsItem>& list);
      |             ^~~
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:44:30: error: ‘folly::SSLContext’ has not been declared
   44 |       const std::list<folly::SSLContext::NextProtocolsItem>& list);
      |                              ^~~~~~~~~~
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:44:7: error: template placeholder type ‘const list<...auto...>’ must be followed by a simple declarator-id
   44 |       const std::list<folly::SSLContext::NextProtocolsItem>& list);
      |       ^~~~~
In file included from /usr/include/c++/11/list:63,
                 from /root/CacheLib_fb/CacheLib/opt/cachelib/include/folly/system/AtFork.h:21,
                 from /root/CacheLib_fb/CacheLib/opt/cachelib/include/folly/detail/ThreadLocalDetail.h:42,
                 from /root/CacheLib_fb/CacheLib/opt/cachelib/include/folly/ThreadLocal.h:52,
                 from /root/CacheLib_fb/CacheLib/opt/cachelib/include/folly/SingletonThreadLocal.h:25,
                 from /root/CacheLib_fb/CacheLib/opt/cachelib/include/folly/synchronization/HazptrThrLocal.h:27,
                 from /root/CacheLib_fb/CacheLib/opt/cachelib/include/folly/synchronization/HazptrDomain.h:29,
                 from /root/CacheLib_fb/CacheLib/opt/cachelib/include/folly/synchronization/Hazptr.h:20,
                 from /root/CacheLib_fb/CacheLib/opt/cachelib/include/folly/concurrency/UnboundedQueue.h:30,
                 from /root/CacheLib_fb/CacheLib/opt/cachelib/include/folly/executors/TimedDrivableExecutor.h:21,
                 from /root/CacheLib_fb/CacheLib/opt/cachelib/include/folly/futures/Future.h:34,
                 from /root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/server/ReplayCache.h:12,
                 from /root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/server/FizzServerContext.h:19,
                 from /root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/server/AeadTicketCipher.h:12,
                 from /root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/server/TicketTypes.h:14,
                 from /root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.cpp:8:
/usr/include/c++/11/bits/stl_list.h:557:11: note: ‘template<class _Tp, class _Alloc> class std::__cxx11::list’ declared here
  557 |     class list : protected _List_base<_Tp, _Alloc>
      |           ^~~~
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.cpp:167:26: error: no declaration matches ‘std::vector<std::__cxx11::basic_string<char> > fizz::FizzUtil::getAlpnsFromNpnList(const std::__cxx11::list<folly::SSLContext::NextProtocolsItem>&)’
  167 | std::vector<std::string> FizzUtil::getAlpnsFromNpnList(
      |                          ^~~~~~~~
In file included from /root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.cpp:9:
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:43:35: note: candidate is: ‘static std::vector<std::__cxx11::basic_string<char> > fizz::FizzUtil::getAlpnsFromNpnList(...)’
   43 |   static std::vector<std::string> getAlpnsFromNpnList(
      |                                   ^~~~~~~~~~~~~~~~~~~
/root/CacheLib_fb/CacheLib/cachelib/external/fizz/fizz/util/FizzUtil.h:23:7: note: ‘class fizz::FizzUtil’ defined here
   23 | class FizzUtil {
      |       ^~~~~~~~
make[2]: *** [CMakeFiles/fizz.dir/build.make:1098: CMakeFiles/fizz.dir/util/FizzUtil.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:89: CMakeFiles/fizz.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
build-package.sh: error: make failed
build.sh: error: failed to build dependency 'fizz'

someone get clue to solve it? thanks

wonglkd commented 5 months ago

Why not try building the latest release instead of master? (do a git checkout v20240312_RC)

idealLight commented 5 months ago

Why not try building the latest release instead of master? (do a git checkout v20240312_RC)

a good tip