1.安装依赖
1 sudo apt-get install flex
2 sudo apt-get install bison
3 sudo apt-get install gperf
2.安装freetype开发库和fontconfig开发库
1. sudo apt-get install libfreetype6-dev
2. sudo apt-get install libfontconfig1-dev
3.给freetype头文件做软链接
sudo ln -s /usr/include/freetype2/freetype /usr/include/freetype
4.安装OpenGL
1 sudo apt-get install build-essential
2 sudo apt-get install libgl1-mesa-dev
3. sudo apt-get install libglu1-mesa-dev
4 sudo apt-get install libegl1-mesa-dev
5 sudo apt-get install freeglut3-dev
5.下载Qt源码并编译
新建文件夹存放编译过程中产生的临时文件,这样不会污染源码所在目录,在源码同级目录下新建文件夹 ,以下以qt5.9.9源码为例。
(1)mkdir qt5.9.9
(2) cd qt5.9.9
(3) ./../qt-everywhere-src-5.9.9/configure -release -prefix ../qt5.9.9
(4)按提示选择版本 ,输入‘o’,回车
(5)询问是否接受协议 ,输入‘y’,回车
6 执行make &make install
sudo make && sudo make install
7 修改环境变量
1 sudo gedit ~/.profile
2 在打开的文件末尾加上下面内容
(1)export QTDIR=/opt/qt5.9.9
(2) export PATH=$QTDIR/bin:$PATH
(3) export MANPATH=$QTDIR/man:$MANPATH
(4) export LD_LIDRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
8. 输入qmake -v 出现版本信息,说明qt源码编译并安装成功,如果出现找不到命令要重新链接
sudo ln -s /opt/Qt5.9.9_static/bin/qmake /usr/bin/qmake
9.Qt源码适配龙芯3A5000需要改动的两个点
1. 报错文件为qtbase/src/3rdparty/double-conversion/include/double-conversion/utils/h
打开这个头文件,在defined(__mips__)|| 后面加上defined(__loongarch__),即把defined(__mips__)|| \ 这行改为 defined(__mips__) || defined(__loongarch__)|| \
2. 报错casr from 'QTJSC::JSCell*' to 'int32_t' {aka 'int'} loses precision [-fpermissive]
原因:'QTJSC::JSCell*' 转'int32_t'会丢失精度 64位Linux机器上的指针占8个字节,而int占4个字节,所以会报这个错
位置:qtscript/src/3rdparty/javascriptcore/javaScriptCore/runtime/JSValue.h
解决方式:打开JSValue.h 文件
找到 u.asBits.payload=reinterpret_cast<int32_t>(ptr); 和u.asBits.payload=reinterpret_cast<int_32_t>(const_cast<JSCell*>(ptr)); , 把int_32_t 改成int64_t。