polybar: GCC 7.1.0 Build Errors

Had no issue building with GCC 6.3.0, but I’m getting this error in the build process with GCC 7.1.0:

[ 13%] Building CXX object bin/CMakeFiles/polybar.dir/components/bar.cpp.o
cd /var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5_build/bin && /usr/bin/x86_64-pc-linux-gnu-g++  -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libdrm -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/alsa -I/var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5/include -I/var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5/lib/concurrentqueue/include -I/var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5/lib/xpp/include   -DNDEBUG -march=native -O2 -pipe -Wall -Wextra -pedantic   -std=c++14 -o CMakeFiles/polybar.dir/components/bar.cpp.o -c /var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5/src/components/bar.cpp
In file included from /var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5/lib/xpp/include/xpp/proto/../generic.hpp:11:0,
                 from /var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5/lib/xpp/include/xpp/proto/x.hpp:9,
                 from /var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5/lib/xpp/include/xpp/event.hpp:9,
                 from /var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5/include/x11/types.hpp:3,
                 from /var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5/include/components/bar.hpp:12,
                 from /var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5/src/components/bar.cpp:3:
/var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5/lib/xpp/include/xpp/proto/../generic/reply_iterator.hpp:89:11: error: specialization of ‘template<class Data, class> class xpp::generic::iterator<Connection, Object, xpp::generic::signature<void(XcbIterator*), Next>, xpp::generic::signature<int(const void*), (* & *(int (*)(const void*))SizeOf)>, xpp::generic::signature<XcbIterator(const Reply*), GetIterator> >::get<Data, <template-parameter-1-2> >’ must appear at namespace scope
     class get<xcb_str_t, Dummy>
           ^~~~~~~~~~~~~~~~~~~~~
make[2]: *** [bin/CMakeFiles/polybar.dir/build.make:183: bin/CMakeFiles/polybar.dir/components/bar.cpp.o] Error 1
make[2]: Leaving directory '/var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5_build'
make[1]: *** [CMakeFiles/Makefile2:494: bin/CMakeFiles/polybar.dir/all] Error 2
make[1]: Leaving directory '/var/tmp/portage/x11-misc/polybar-3.0.5/work/polybar-3.0.5_build'
make: *** [Makefile:130: all] Error 2

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 5
  • Comments: 18 (4 by maintainers)

Most upvoted comments

A good workaround for that one is to use Clang for the time being. Just add

export CC=/usr/bin/clang
export CXX=/usr/bin/clang++

Into the build() section of PKGBUILD

For you who are installing polybar using the AUR; I have updated the PKGBUILD so that clang will be used until the gcc issues have been fixed.

Version 3.0.5 will always suffer from this. Please compile with clang, as described in this thread, when compiling version 3.0.5