Learning To Build Applications

Home » CentOS » Learning To Build Applications
CentOS 4 Comments

I have managed to get through the qtmake stage of compiling the current github version of pgmodeler on CentOS 7 but make && make install fails with:

make && make install cd libutils/ && ( test -e Makefile || /bin/qmake-qt5 -o Makefile /home/h/pgmodeler/libutils/libutils.pro CONFIG+=release PREFIX= BINDIR= PRIVATEBINDIR= PRIVATELIBDIR=/lib ) && make -f Makefile make[1]: Entering directory /home/h/pgmodeler/libutils’ g++ -c -pipe -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong –param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -O2 -std=gnu++1y -Wall -W -D_REENTRANT -fPIC -DBUILDNUM=\”20201030\” -DBINDIR=\”\” -DPLUGINSDIR=\”/lib/pgmodeler/plugins\” -DPRIVATEBINDIR=\”\” -DCONFDIR=\”/share/pgmodeler/conf\” -DDOCDIR=\”/share/pgmodeler\” -DLANGDIR=\”/share/pgmodeler/lang\” -DSAMPLESDIR=\”/share/pgmodeler/samples\” -DSCHEMASDIR=\”/share/pgmodeler/schemas\” -DQT_NO_DEBUG -DQT_PRINTSUPPORT_LIB -DQT_SVG_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I. -isystem /usr/include/libxml2 -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtPrintSupport -isystem /usr/include/qt5/QtSvg -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtNetwork -isystem /usr/include/qt5/QtCore -Imoc -isystem /usr/include/libdrm -I/usr/lib64/qt5/mkspecs/linux-g++ -o obj/exception.o src/exception.cpp In file included from src/exception.cpp:18:0: src/exception.h:41:11: error: ‘underlying_type_t’ in namespace ‘std’ does not name a type constexpr std::underlying_type_t enum_cast (Enum obj_type) noexcept ^ src/exception.cpp: In constructor ‘Exception::Exception(ErrorCode, const QString&, const QString&, int, Exception*, const QString&)’: src/exception.cpp:295:86: error: ‘enum_cast’ was not declared in this scope configureException(QApplication::translate(“Exception”,messages[enum_cast(error_code)][ErrorMessage].toStdString().c_str(),””, -1), ^ src/exception.cpp: In constructor ‘Exception::Exception(ErrorCode, const QString&, const QString&, int, std::vector&, const QString&)’: src/exception.cpp:314:86: error: ‘enum_cast’ was not declared in this scope configureException(QApplication::translate(“Exception”,messages[enum_cast(error_code)][ErrorMessage].toStdString().c_str(),””,-1), ^ src/exception.cpp: In static member function ‘static QString Exception::getErrorMessage(ErrorCode)’: src/exception.cpp:371:25: error: ‘enum_cast’ was not declared in this scope if(enum_cast(error_code) < ErrorCount) ^ src/exception.cpp: In static member function ‘static QString Exception::getErrorCode(ErrorCode)’: src/exception.cpp:382:25: error: ‘enum_cast’ was not declared in this scope if(enum_cast(error_code) < ErrorCount) ^ src/exception.cpp: In static member function ‘static QString Exception::getErrorMessage(ErrorCode)’: src/exception.cpp:378:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ src/exception.cpp: In static member function ‘static QString Exception::getErrorCode(ErrorCode)’: src/exception.cpp:386:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ make[1]: *** [obj/exception.o] Error 1 make[1]: Leaving directory /home/hakan/pgmodeler/libutils' make: *** [sub-libutils-make_first-ordered] Error 2 I am a beginner when it comes to compiling applications and would appreciate suggestion how to fix the above. Thank you.

4 thoughts on - Learning To Build Applications

  • Looks like a build failure that was mentioned here:
    https://github.com/pgmodeler/pgmodeler/issues/1259

    I believe this reply is relevant:
    “It’s not yet documented but you have to use the latest Qt version 5.11
    or 5.12 and have C++14 enabled on your compiler. Make sure to use at least gcc 5.0 to get full support to C++14.”

    I believe CentOS 7 includes Qt 5.9, so I wouldn’t expect this application to build, there.

  • Hi, I am back looking at this again and you are right. I had installed qt-qtsvg-devel-5.9.7 on my CentOS 7 system and per pkgs.org it seems that is the last version available as a download for CentOS 7. CentOS 8, on the other hand, seems to have 5.12.

    I just found https://doc.qt.io/qt-5/supported-platforms.html and it suggests that Qt 5.15 can be compiled for RHEL 7.6 using gcc 5.3.1 via devtoolset-4.

    Perhaps someone on this mailing list has been successful in compiling Qt 5.11 or later for CentOS 7.x?

  • Just tried to download devtoolset-4 from SCL but it failed. Found by experimenting that devtoolset-7 through -10 are available.

    I am installing the latter in the hope that it will be the latest and the bestest…