Compiling 5.37.1 on ubuntu server

Started by yakup, August 14, 2018, 10:04:03 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

yakup

Hello everyone; I'm trying to compile 5.37.1 version on ubuntu server but no luck. I've tried all the steps on README. I'm getting "error:use of deleted method qAsConst" at "make" step. I think problem is: I can not install qt version 5.7 or greater. qt5-default package is some 5.2 version on ubuntu repositories. any help would be great. Thanks.

Exact error is: In file included from engine/timetableexport.cpp:46:0:
engine/timetable_defs.h:42:25: error:   initializing argument 1 of 'void qAsConst(const T&&) [with T = QList<int>]'
template <class T> void qAsConst(const T&&) = delete;

Liviu Lalescu

Indeed, it is a bug of mine.

You can solve it for now: in src.pro and src-cl.pro, instead of c++11, write c++14. And use a C++14 compiler.

I will try to make it compile with a C++11 compiler.

I am sorry for this bug. Thank you for reporting! I will solve it as soon as possible and release a new version.

yakup

Thanks. That solved the issue. I'm writing details for anyone that needs this:

Ubuntu 14 command-line version:
edit fet.pro
delete src.pro from second line.

edit src/src-cl.pro

find c++11 and change it to c++14

sudo apt-get update && \
sudo apt-get install build-essential software-properties-common -y && \
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo apt-get update && \
sudo apt-get install gcc-snapshot -y && \
sudo apt-get update && \
sudo apt-get install gcc-8 g++-8 -y && \
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-8


sudo update-alternatives --config gcc

apt-get install qt5-default

go to fet directory
qmake
make
make install

than you can call fet with command "fet-cl" from terminal

Liviu Lalescu

1. If you have multi-core processor, make -j 4 (or more) is much faster.

2. I found the correct fix using a C++11 compiler, so the above steps will not be needed. I might release the new version today (Wednesday, 15 August). Please see 3.

3. Please try the official FET-5.37.1 with the attached file (so without your changes / without any other changes), and tell me if it is compiling/working OK.

yakup


Failed with this configuration:

gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4)


QMake version 3.0
Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu

engine/timetableexport.cpp:9875:28: error: 'assert' was not declared in this scope
        default: assert(0==1); break;
                            ^
Makefile.src-cl:1113: recipe for target '../tmp/commandline/timetableexport.o' failed
make[1]: *** [../tmp/commandline/timetableexport.o] Error 1
make[1]: Leaving directory '/root/fet-5.37.1/src'
Makefile:39: recipe for target 'sub-src-src-cl-pro-make_default' failed
make: *** [sub-src-src-cl-pro-make_default] Error 2

succeeded with this configuration:
gcc version 8.1.0 (Ubuntu 8.1.0-5ubuntu1~14.04)
QMake version 3.0
Using Qt version 5.2.1 in /usr/lib/x86_64-linux-gnu

Liviu Lalescu

Probably a bug of gcc 4.8.4. Very weird!

Thank you! I will post an official FET soon, fixing this (but it will probably not work with this gcc 4.8.4).

Volker Dirr

#6
I am not sure if such a fix is needed. It is dangerous to use so old and bugged software versions.

Of course the Ubuntu 14.04 LTS kernel is supported until April 2019. But a lot of other software isn't supported anymore in that version.
For example Qt < 5.9 is not supported anymore. It is critical to use lower versions.

Qt 5.2 was release 2013 and expired a long time ago now.
Qt 5.9 is the LTS version and still supported.
The current version is Qt 5.11.1

I am using ubuntu 16.04 LTS. So i thought my system will be up to date until April 2021. But sadly that is not true. Only 67% of the packages are support so long.
28% are only supported until April 2019. The other packages are already today expired :-(

The current LTS version is 18.04. There will be no other LTS version in the next 2 years. So in fact you have got max 8 month time left to update your system. You should think about updating it soon.

You can check that with "ubuntu-support-status".


BTW Liviu:
14.04 LTS use gcc 4.8.2 by default
16.04 LTS use gcc 5.3.1 by default

Since 14.04 expire in 8 month i suggest to have a minimum requirement of gcc 5.3.1

Liviu Lalescu

I just released the new official FET version, 5.37.2. Thank you, yakup, for your report!