Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when compiling with log4cxx 0.13.0 #59

Open
erhangk opened this issue Mar 21, 2023 · 1 comment
Open

Error when compiling with log4cxx 0.13.0 #59

erhangk opened this issue Mar 21, 2023 · 1 comment

Comments

@erhangk
Copy link

erhangk commented Mar 21, 2023

On Fedora 37, catkin workspace does not build.

/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp:169:23: error: cannot convert 'ros::console::impl::ROSConsoleStdioAppender*' to 'log4cxx::AppenderPtr' {aka 'std::shared_ptr<log4cxx::Appender>'}
  169 |   logger->addAppender(new ROSConsoleStdioAppender);
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                       |
      |                       ros::console::impl::ROSConsoleStdioAppender*
In file included from /usr/include/log4cxx/spi/loggingevent.h:28,
                 from /usr/include/log4cxx/layout.h:29,
                 from /usr/include/log4cxx/appenderskeleton.h:28,
                 from /home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp:42:
/usr/include/log4cxx/logger.h:144:60: bilgi:   initializing argument 1 of 'virtual void log4cxx::Logger::addAppender(log4cxx::AppenderPtr)'
  144 |                 virtual void addAppender(const AppenderPtr newAppender);
      |                                          ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp: 'void ros::console::impl::print(void*, ros::console::Level, const char*, const char*, const char*, int)' işlevinde:
/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp:187:98: error: no matching function for call to 'log4cxx::spi::LocationInfo::LocationInfo(const char*&, const char*&, int&)'
  187 | _lookup[level], str, log4cxx::spi::LocationInfo(file, function, line));
      |                                                                     ^

In file included from /usr/include/log4cxx/logger.h:33:
/usr/include/log4cxx/spi/location/locationinfo.h:94:17: bilgi: candidate: 'log4cxx::spi::LocationInfo::LocationInfo(const log4cxx::spi::LocationInfo&)'
   94 |                 LocationInfo( const LocationInfo& src );
      |                 ^~~~~~~~~~~~
/usr/include/log4cxx/spi/location/locationinfo.h:94:17: bilgi:   candidate expects 1 argument, 3 provided
/usr/include/log4cxx/spi/location/locationinfo.h:88:17: bilgi: candidate: 'log4cxx::spi::LocationInfo::LocationInfo()'
   88 |                 LocationInfo();
      |                 ^~~~~~~~~~~~
/usr/include/log4cxx/spi/location/locationinfo.h:88:17: bilgi:   candidate expects 0 arguments, 3 provided
/usr/include/log4cxx/spi/location/locationinfo.h:80:17: bilgi: candidate: 'log4cxx::spi::LocationInfo::LocationInfo(const char*, const char*, const char*, int)'
   80 |                 LocationInfo( const char* const fileName,
      |                 ^~~~~~~~~~~~
/usr/include/log4cxx/spi/location/locationinfo.h:80:17: bilgi:   candidate expects 4 arguments, 3 provided
/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp: 'void* ros::console::impl::getHandle(const std::string&)' işlevinde:
/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp:203:36: error: cannot convert 'log4cxx::LoggerPtr' {aka 'std::shared_ptr<log4cxx::Logger>'} to 'void*' in return
  203 |   return log4cxx::Logger::getLogger(name);
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
      |                                    |
      |                                    log4cxx::LoggerPtr {aka std::shared_ptr<log4cxx::Logger>}
/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp: 'bool ros::console::impl::get_loggers(std::map<std::__cxx11::basic_string<char>, ros::console::levels::Level>&)' işlevinde:
/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp:219:120: error: conversion from 'log4cxx::spi::LoggerRepository*' to non-scalar type 'log4cxx::spi::LoggerRepositoryPtr' {aka 'std::shared_ptr<log4cxx::spi::LoggerRepository>'} requested
  219 | :Logger::getLogger(ROSCONSOLE_ROOT_LOGGER_NAME)->getLoggerRepository();
      | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~

/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp: 'void ros::console::impl::register_appender(ros::console::LogAppender*)' işlevinde:
/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp:361:23: error: cannot convert 'ros::console::impl::Log4cxxAppender*' to 'log4cxx::AppenderPtr' {aka 'std::shared_ptr<log4cxx::Appender>'}
  361 |   logger->addAppender(g_log4cxx_appender);
      |                       ^~~~~~~~~~~~~~~~~~
      |                       |
      |                       ros::console::impl::Log4cxxAppender*
/usr/include/log4cxx/logger.h:144:60: bilgi:   initializing argument 1 of 'virtual void log4cxx::Logger::addAppender(log4cxx::AppenderPtr)'
  144 |                 virtual void addAppender(const AppenderPtr newAppender);
      |                                          ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp: 'void ros::console::impl::deregister_appender(ros::console::LogAppender*)' işlevinde:
/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp:368:27: error: no matching function for call to 'log4cxx::Logger::removeAppender(ros::console::impl::Log4cxxAppender*&)'
  368 |     logger->removeAppender(g_log4cxx_appender);
      |     ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/usr/include/log4cxx/logger.h:1450:22: bilgi: candidate: 'virtual void log4cxx::Logger::removeAppender(log4cxx::AppenderPtr)'
 1450 |                 void removeAppender(const AppenderPtr appender);
      |                      ^~~~~~~~~~~~~~
/usr/include/log4cxx/logger.h:1450:55: bilgi:   no known conversion for argument 1 from 'ros::console::impl::Log4cxxAppender*' to 'log4cxx::AppenderPtr' {aka 'std::shared_ptr<log4cxx::Appender>'}
 1450 |                 void removeAppender(const AppenderPtr appender);
      |                                     ~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/log4cxx/logger.h:1456:22: bilgi: candidate: 'virtual void log4cxx::Logger::removeAppender(const log4cxx::LogString&)'
 1456 |                 void removeAppender(const LogString& name);
      |                      ^~~~~~~~~~~~~~
/usr/include/log4cxx/logger.h:1456:54: bilgi:   no known conversion for argument 1 from 'ros::console::impl::Log4cxxAppender*' to 'const log4cxx::LogString&' {aka 'const std::__cxx11::basic_string<char>&'}
 1456 |                 void removeAppender(const LogString& name);
      |                                     ~~~~~~~~~~~~~~~~~^~~~
/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp: 'void ros::console::impl::shutdown()' işlevinde:
/home/erhangk/ros_catkin_ws/src/rosconsole/src/rosconsole/impl/rosconsole_log4cxx.cpp:378:27: error: no matching function for call to 'log4cxx::Logger::removeAppender(ros::console::impl::Log4cxxAppender*&)'
  378 |     logger->removeAppender(g_log4cxx_appender);
      |     ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/usr/include/log4cxx/logger.h:1450:22: bilgi: candidate: 'virtual void log4cxx::Logger::removeAppender(log4cxx::AppenderPtr)'
 1450 |                 void removeAppender(const AppenderPtr appender);
      |                      ^~~~~~~~~~~~~~
/usr/include/log4cxx/logger.h:1450:55: bilgi:   no known conversion for argument 1 from 'ros::console::impl::Log4cxxAppender*' to 'log4cxx::AppenderPtr' {aka 'std::shared_ptr<log4cxx::Appender>'}
 1450 |                 void removeAppender(const AppenderPtr appender);
      |                                     ~~~~~~~~~~~~~~~~~~^~~~~~~~
/usr/include/log4cxx/logger.h:1456:22: bilgi: candidate: 'virtual void log4cxx::Logger::removeAppender(const log4cxx::LogString&)'
 1456 |                 void removeAppender(const LogString& name);
      |                      ^~~~~~~~~~~~~~
/usr/include/log4cxx/logger.h:1456:54: bilgi:   no known conversion for argument 1 from 'ros::console::impl::Log4cxxAppender*' to 'const log4cxx::LogString&' {aka 'const std::__cxx11::basic_string<char>&'}
 1456 |                 void removeAppender(const LogString& name);
      |                                     ~~~~~~~~~~~~~~~~~^~~~
make[2]: *** [CMakeFiles/rosconsole_log4cxx.dir/build.make:76: CMakeFiles/rosconsole_log4cxx.dir/src/rosconsole/impl/rosconsole_log4cxx.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:318: CMakeFiles/rosconsole_log4cxx.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
<== Failed to process package 'rosconsole': 
  Command '['/home/erhangk/ros_catkin_ws/install_isolated/env.sh', 'make', '-j8', '-l8']' returned non-zero exit status 2.

Reproduce this error by running:
==> cd /home/erhangk/ros_catkin_ws/build_isolated/rosconsole && /home/erhangk/ros_catkin_ws/install_isolated/env.sh make -j8 -l8

Command failed, exiting.
@lavandejoey
Copy link

For Ubuntu 22, it can be solved by #51 and #54

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants