qt - 在 Ubuntu 18.04.1 LTS 中安装 Qt 4.8.7

标签 qt ubuntu installation qt4

我正在尝试在运行 Ubuntu 18.04.1 LTS 的虚拟机中从源代码 ( https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz ) 安装 Qt 4.8.7

0_1551842108100_Ubuntu Machine.PNG

所以我遵循的命令是:

mkdir Qt
cd Qt
wget https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz
tar -xzf qt-everywhere-opensource-src-4.8.7.tar.gz
mv qt-everywhere-opensource-src-4.8.7 Qt-Source
cd Qt-Source
./configure

然后我选择开源版,接受许可条款。之后显示:

Qt is now configured for building. Just run 'make'.
Once everything is built, you must run 'make install'.
Qt will be installed into /usr/local/Trolltech/Qt-4.8.7

所以...

make 

我有下一个错误;

0_1551845738419_Capturaqt.PNG

还有就是在运行make的过程中,出现了很多这样的错误:

0_1551845788905_Capturaqt2.PNG

你能帮帮我吗?请

最佳答案

埃利亚内斯,

我几天前遇到了和你一样的问题。经过多次尝试,我做到了。

首先,您需要安装另一个 gcc 和 g++ 版本的 elder(我选择 4.8 版本)。

按照另一个答案中的说明进行操作: GCC & C++ alternatives

然后编辑文件: mkspecs/linux-g++-64/qmake.conf

QMAKE_CFLAGS            = -std=gnu++98 -fpermissive
QMAKE_LFLAGS            = -std=gnu++98 -fpermissive
QMAKE_CXXFLAGS          = -std=gnu++98 -fpermissive

有了这些标志,编译器将使用 C++98 版本。像 Bart_Vandewoestyne solution.

然后运行:

./configure -opensource -nomake demos -nomake examples -nomake tests -debug-and-release -qt3support -no-openssl -no-webkit
make -jN
sudo make install

完成安装后返回默认的 gcc 和 g++ 版本:

cd /usr/bin
sudo mv g++ g++-4.8_
sudo ln -s g++-7 g++
sudo mv gcc gcc-4.8_
sudo ln -s gcc-7 gcc

并测试:

gcc --version
g++ --version

现在是时候编译一些代码了。但是,在此之前我们需要更改我们的 mkspec 上的修改:

cd /usr/local/Trolltech/Qt-4.8.4/mkspecs/linux-g++-64/
nano qmake.conf

并评论更改的行并返回到原始配置:

#QMAKE_CFLAGS           = -std=gnu++98 -fpermissive 
#QMAKE_LFLAGS           = -std=gnu++98 -fpermissive 
#QMAKE_CXXFLAGS         = -std=gnu++98 -fpermissive

QMAKE_CFLAGS            = -m64
QMAKE_LFLAGS            = -m64
QMAKE_CXXFLAGS          = -m64

现在你改变你的 *.pro 文件添加或改变这些行:

QMAKE_CXX = g++-7
QMAKE_CC  = gcc-7

让我知道它是否有效。对我来说一切都很好。

关于qt - 在 Ubuntu 18.04.1 LTS 中安装 Qt 4.8.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55015554/

相关文章:

c++ - 无法正确递归目录

c++ - QMetaObject::connectSlotsByName 错误

c++ - 根据 className 的字符串获取 QObject 的子类的 QMetaObject

linux - 如何编写 docker 脚本以便 sudo 在 Docker 用户中运行?

mysql配置停在 "starting server"

c++ - 将指针传递给结构时 Qt 信号不起作用

ruby - 在 Ubuntu 12.10 上安装 Nokogiri (1.5.2) 时出现问题

django - 即使在运行迁移之后 Django Programming 错误列也不存在

node.js - 无法安装 Node.js 包

asp.net - 安装程序类显然没有被调用