Conky: Build fails with gcc7 due to missing include

Created on 29 May 2017  ·  4Comments  ·  Source: brndnmtthws/conky

gcc7 is less tolerant with non-standard and deprecated code than gcc6 was 😉 .
As a consequence conky can no longer be compiled.
There are various warnings about dynamic exception of the kind

/src/semaphore.hh:40:36: warning: dynamic exception specifications are deprecated in C++11 [-Wdeprecated]
  semaphore(unsigned int value = 0) throw(std::logic_error)

and a lot of errors like

src/luamm.hh:39:15: error: ‘function’ in namespace ‘std’ does not name a template type
  typedef std::function<int(state *)> cpp_function;

or

src/luamm.hh:250:26: error: ‘cpp_function’ does not name a type; did you mean ‘lua_CFunction’?
   void pushclosure(const cpp_function &fn, int n);

full buildlog is here

Most helpful comment

The error is caused by a missing #include:

diff -bur conky-1.10.6-orig/src/luamm.hh conky-1.10.6/src/luamm.hh
--- conky-1.10.6-orig/src/luamm.hh      2016-12-04 17:13:57.000000000 +0200
+++ conky-1.10.6/src/luamm.hh   2017-05-31 20:05:59.000000000 +0300
@@ -28,6 +28,7 @@
 #include <exception>
 #include <stdexcept>
 #include <string>
+#include <functional>

 #include <lua.hpp>

All 4 comments

In fact all the fatal errors result from luamm.hh file. The C/C++ - melange there doesn't seem to work out any longer ... 😜

The error is caused by a missing #include:

diff -bur conky-1.10.6-orig/src/luamm.hh conky-1.10.6/src/luamm.hh
--- conky-1.10.6-orig/src/luamm.hh      2016-12-04 17:13:57.000000000 +0200
+++ conky-1.10.6/src/luamm.hh   2017-05-31 20:05:59.000000000 +0300
@@ -28,6 +28,7 @@
 #include <exception>
 #include <stdexcept>
 #include <string>
+#include <functional>

 #include <lua.hpp>

Awesome 😆 Thank you!

Kindly close this issue now that the patch is included in the repo

Was this page helpful?
0 / 5 - 0 ratings