QT

[QT] Ubuntu 18.04LTS環境設定にQTフレームワークを設置する(X11 platform 用)

크게웃기 2019. 2. 6. 17:44
반응형

Ubuntu 18.04LTS環境設定にQT フレームワークを設置する(X11 platform 用)

ubuntu の web page アクセスして必要なQT version をDownloadする。

http://download.qt.io/archive/qt/

ファイアフォックスやweb を実行したくないならwget を用いて受けてもよさそうだ。 

私は4.8.7バージョンを設置した。

wget http://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz

wget http://download.qt.io/archive/qtcreator/4.4/4.4.1/qt-creator-opensource-linux-x86_64-4.4.1.run

QT makeする前に必要なpackage


sudo apt install make gcc g++ build-essential libxtst-dev libstdc++-7-doc qt4-qmake libqt4-dev -y
cs


ダウンロードしたフォルダーに進入後,圧竹の解体と束を解く。

gunzip qt-everywhere-opensource-src-4.8.7.tar.gz # uncompress the archive tar xvf qt-everywhere-opensource-src-4.8.7.tar # unpack it

次に 環境設定を進める。

cd ./qt-everywhere-opensource-src-4.8.7
./configure

次の make

make

Ubuntu 18.04でQT make 進行時,以下のようなBuild errorが発生します。

Ubuntu 18.04 に適用されたGCC がC++11 がDisable になっている。私何と言ってる...

1
2
3
4
5
6
7
8
9
10
11
../3rdparty/javascriptcore/JavaScriptCore/wtf/TypeTraits.h:173:69: error: ‘std::tr1’ has not been declared
     template<typename T> struct HasTrivialConstructor : public std::tr1::has_trivial_constructor<T> { };
                                                                     ^~~
../3rdparty/javascriptcore/JavaScriptCore/wtf/TypeTraits.h:173:74: error: expected ‘{’ before ‘has_trivial_constructor’
     template<typename T> struct HasTrivialConstructor : public std::tr1::has_trivial_constructor<T> { };
                                                                          ^~~~~~~~~~~~~~~~~~~~~~~
../3rdparty/javascriptcore/JavaScriptCore/wtf/TypeTraits.h:174:68: error: ‘std::tr1’ has not been declared
     template<typename T> struct HasTrivialDestructor : public std::tr1::has_trivial_destructor<T> { };
                                                                    ^~~
../3rdparty/javascriptcore/JavaScriptCore/wtf/TypeTraits.h:174:73: error: expected ‘{’ before ‘has_trivial_destructor’
     template<typename T> struct HasTrivialDestructor : public std::tr1::has_trivial_destructor<T> { };
cs


それでは,下のファイルの一番下の方にこのようにオプションを修正してくれる。


vi qt-everywhere-opensource-src-4.8.7/src/script/script.pro

112
QMAKE_CXXFLAGS          += -std=gnu++98
cs


...

ところが, また Errorが発 生する。

1
2
3
itemviews.cpp: In member function ‘virtual bool QAccessibleTable2::unselectColumn(int)’:
itemviews.cpp:396:105: error: conversion from ‘int’ to ‘QItemSelectionModel::SelectionFlags {aka QFlags<QItemSelectionModel::SelectionFlag>}’ is ambiguous
     view()->selectionModel()->select(index, QItemSelectionModel::Columns & QItemSelectionModel::Deselect);
cs


あんな時は コードを修正しなければならないんだよ...  該当 GCC バージョンには QFlagsの 値をキャスティングできないんだって。




396
397
vi ./src/plugins/accessible/widgets/itemviews.cpp
 
//    view()->selectionModel()->select(index, QItemSelectionModel::Columns & QItemSelectionModel::Deselect);
    view()->selectionModel()->select(index, static_cast<QItemSelectionModel::SelectionFlags>(QItemSelectionModel::Columns & QItemSelectionModel::Deselect));
cs


環境変数追加

trolltechで 作って trolltechフォルダーの 中に qt frame が設置される。


".Profile" に下記の内容を追加する。
いつでもどこでもqt bin を使うため。

vi .profile
PATH=/usr/local/Trolltech/Qt-%VERSION%/bin:$PATH
export PATH

setenv PATH /usr/local/Trolltech/Qt-4.8.7/bin:$PATH

Ubuntu 18.04LTS環境設定にQTフレームワーク設置済 み。


반응형