[OpenIndiana-discuss] Compiling KeepassXC on Hipster

bentahyr at chez.com bentahyr at chez.com
Mon Dec 3 03:07:34 UTC 2018


Hello,

I'm trying to compile KeepassXC from source using gcc-7 but I fall onto 
the following issue :

[ 53%] Building CXX object 
src/CMakeFiles/keepassx_core.dir/totp/totp.cpp.o
/home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp: In static member 
function 'static QString Totp::generateTotp(QByteArray, quint64, quint8, 
quint8)':
/home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp:167:62: error: call of 
overloaded 'pow(int, quint8&)' is ambiguous
      quint32 digitsPower = pow(encoder.alphabet.size(), digits);
                                                               ^
In file included from /usr/include/math.h:32:0,
                  from /usr/gcc/7/include/c++/7.3.0/bits/std_abs.h:40,
                  from /usr/gcc/7/include/c++/7.3.0/cstdlib:77,
                  from /usr/gcc/7/include/c++/7.3.0/bits/stl_algo.h:59,
                  from /usr/gcc/7/include/c++/7.3.0/algorithm:62,
                  from /usr/lib/qt/5.8/include/QtCore/qglobal.h:108,
                  from /home/ben/tmp/keepassxc-2.3.4/src/totp/totp.h:22,
                  from 
/home/ben/tmp/keepassxc-2.3.4/src/totp/totp.cpp:19:
/usr/include/iso/math_iso.h:84:15: note: candidate: double 
std::pow(double, double)
  extern double pow __P((double, double));
                ^~~
/usr/include/iso/math_iso.h:161:16: note: candidate: double 
std::pow(double, int)
   inline double pow(double __X, int __Y) { return
                 ^~~
/usr/include/iso/math_iso.h:181:15: note: candidate: float 
std::pow(float, float)
   inline float pow(float __X, float __Y) { return __powf(__X, __Y); }
                ^~~
/usr/include/iso/math_iso.h:182:15: note: candidate: float 
std::pow(float, int)
   inline float pow(float __X, int __Y) { return
                ^~~
/usr/include/iso/math_iso.h:212:21: note: candidate: long double 
std::pow(long double, long double)
   inline long double pow(long double __X, long double __Y) { return
                      ^~~
/usr/include/iso/math_iso.h:214:21: note: candidate: long double 
std::pow(long double, int)
   inline long double pow(long double __X, int __Y) { return
                      ^~~
gmake[2]: *** [src/CMakeFiles/keepassx_core.dir/build.make:1545: 
src/CMakeFiles/keepassx_core.dir/totp/totp.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:230: 
src/CMakeFiles/keepassx_core.dir/all] Error 2
gmake: *** [Makefile:141: all] Error 2

I think KeepassXC code expect pow coming from 
/usr/gcc/7/include/c++/7.3.0/complex.h rather than 
/usr/include/iso/math_iso.h

I tried to shuffle around the -I on the compiler command line but it 
doesn't seem to have any impact

Compile command is :

cd /home/franck/tmp/keepassxc-2.3.4/build/src && /usr/bin/g++-7  
-DKEEPASSX_BUILDING_CORE -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB 
-DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG 
-DQT_NO_EXCEPTIONS -DQT_STRICT_ITERATORS -DQT_WIDGETS_LIB 
-I/home/franck/tmp/keepassxc-2.3.4/build/src/keepassx_core_autogen/include 
-I/home/franck/tmp/keepassxc-2.3.4/src 
-I/home/franck/tmp/keepassxc-2.3.4/build/src 
-I/home/franck/tmp/keepassxc-2.3.4/src/zxcvbn -isystem 
/usr/lib/qt/5.8/include -isystem /usr/lib/qt/5.8/include/QtCore -isystem 
/usr/lib/qt/5.8/./mkspecs/solaris-g++ -isystem 
/usr/lib/qt/5.8/include/QtWidgets -isystem /usr/lib/qt/5.8/include/QtGui 
-isystem /usr/lib/qt/5.8/include/QtNetwork -isystem 
/usr/lib/qt/5.8/include/QtConcurrent -isystem 
/usr/lib/qt/5.8/include/QtDBus -fno-common -Wall -Wextra -Wundef 
-Wpointer-arith -Wno-long-long -Wformat=2 -Wmissing-format-attribute 
-fvisibility=hidden -fvisibility-inlines-hidden -fstack-protector-strong 
-fno-exceptions -fno-rtti -Wnon-virtual-dtor -Wold-style-cast 
-Woverloaded-virtual -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 
-Werror=format-security -Wcast-align -std=c++11 -O3 -DNDEBUG   -fPIC 
-std=gnu++11 -o CMakeFiles/keepassx_core.dir/totp/totp.cpp.o -c 
/home/franck/tmp/keepassxc-2.3.4/src/totp/totp.cppEPASSX_BUILDING_CORE 
-DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB 
-DQT_NETWORK_LIB -DQT_NO_CAST_TO_ASCII -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS 
-DQT_STRICT_ITERATORS -DQT_WIDGETS_LIB -I/usr/gcc/7/include/c++/7.3.0 
-I/home/franck/tmp/keepassxc-2.3.4/build/src/keepassx_core_autogen/include 
-I/home/franck/tmp/keepassxc-2.3.4/src 
-I/home/franck/tmp/keepassxc-2.3.4/build/src 
-I/home/franck/tmp/keepassxc-2.3.4/src/zxcvbn -isystem 
/usr/lib/qt/5.8/include -isystem /usr/lib/qt/5.8/include/QtCore -isystem 
/usr/lib/qt/5.8/./mkspecs/solaris-g++ -isystem 
/usr/lib/qt/5.8/include/QtWidgets -isystem /usr/lib/qt/5.8/include/QtGui 
-isystem /usr/lib/qt/5.8/include/QtNetwork -isystem 
/usr/lib/qt/5.8/include/QtConcurrent -isystem 
/usr/lib/qt/5.8/include/QtDBus -fno-common -Wall -Wextra -Wundef 
-Wpointer-arith -Wno-long-long -Wformat=2 -Wmissing-format-attribute 
-fvisibility=hidden -fvisibility-inlines-hidden -fstack-protector-strong 
-fno-exceptions -fno-rtti -Wnon-virtual-dtor -Wold-style-cast 
-Woverloaded-virtual -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 
-Werror=format-security -Wcast-align -std=c++11 -O3 -DNDEBUG   -fPIC


Best regards.
ben



More information about the openindiana-discuss mailing list