(诛仙剑C-SKY)6-QT
作者:cp
时间:2019-05-16
申明:本文一些素材取自网络,归原作者所有
写在前面
移植基于linuxfb的QT,不建议使用吧,这里只作C-SKY也可以使用QT的证明
1.源码
1.1下载
http://download.qt.io/archive/qt/
-
我下载的
qt-everywhere-src-5.12.3.tar.xz
-
放在
C-SKY
下新建的文件夹QT
1.2解压
xz -d qt-everywhere-src-5.12.3.tar.xz
tar -xvf qt-everywhere-src-5.12.3.tar
2.配置qmake.conf
- 在
C-SKY/QT/qt-everywhere-src-5.12.3/qtbase/mkspecs
下新建文件夹linux-csky-g++
,其中文件复制于linux-g++
,也即:
cp -r linux-g++ linux-csky-g++
- 编辑qmake.conf,内容如下:
#
# qmake configuration for linux-g++
#
MAKEFILE_GENERATOR = UNIX
CONFIG += incremental
QMAKE_INCREMENTAL_STYLE = sublib
QT_QPA_DEFAULT_PLATFORM = linuxfb:fb=/dev/fb0
QMAKE_CFLAGS_RELEASE += -O2
QMAKE_CXXFLAGS_RELEASE += -O2
include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)
# modifications to g++.conf
QMAKE_CC = csky-linux-gcc
QMAKE_CXX = csky-linux-g++
QMAKE_LINK = csky-linux-g++ -msoft-float -lrt
QMAKE_LINK_SHLIB = csky-linux-g++ -msoft-float -lrt
QMAKE_CFLAGS += -msoft-float
QMAKE_CXXFLAGS += -msoft-float
# modifications to linux.conf
QMAKE_AR = csky-linux-ar cqs
QMAKE_OBJCOPY = csky-linux-objcopy
QMAKE_NM = csky-linux-nm -P
QMAKE_STRIP = csky-linux-strip
load(qt_config)
3.configure&make
- 在
QT
下新建文件夹qt-csky
用于存放生成文件 - 在
qt-everywhere-src-5.12.3
下configure
./configure -prefix /home/cp/Desktop/C-SKY/QT/qt-csky -verbose -confirm-license -opensource -release -xplatform linux-csky-g++ -optimized-qmake -optimize-size -strip -linuxfb -pch -sql-sqlite -qt-libjpeg -qt-libpng -qt-zlib -no-opengl -no-sse2 -no-openssl -no-iconv -no-cups -no-glib -no-dbus -no-xcb -no-separate-debug-info -make libs -nomake examples -nomake tools -nomake tests -skip qt3d -skip qtcanvas3d -skip qtpurchasing -skip qtvirtualkeyboard
make
此时会产生关于double-conversion
的错误,如下:
其实在configure
中有一个选项可以使用-no-doubleconversion
,但是最终也会产生#Your C library does not provide sscanf_l or snprintf_l
的错误,所以这里直接看提示打开../3rdparty/double-conversion/include/double-conversion/double-conversion.h:31:0
,如下:
可以发现实际上我们没有指定架构导致不能正常使用double-conversion
,所以configure
时加上-D __riscv
,完整的configure
如下:
./configure \
-verbose \
-prefix /home/cp/Desktop/C-SKY/QT/qt-csky \
-confirm-license \
-opensource -release \
-make libs \
-xplatform linux-csky-g++ \
-optimized-qmake \
-optimize-size \
-strip \
-linuxfb \
-pch \
-sql-sqlite \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-iconv \
-no-cups \
-no-glib \
-no-dbus \
-no-xcb \
-no-separate-debug-info \
-nomake examples -nomake tools -nomake tests \
-skip qt3d -skip qtcanvas3d -skip qtpurchasing -skip qtvirtualkeyboard \
-D __riscv
再make & make install
4.安装与配置
4.1安装
- 将编译安装得到的lib、plugins拷贝到开发板
/opt/QT5.12.3_csky
文件夹中,其中lib中存放的是QT程序运行所需的动态库文件,plugins中存放的应该是所需的插件 - 新建
/opt/QT5.12.3_csky/fonts
文件夹存放字体,字体随便从网上找几个放进去就好
4.2环境变量配置
发现开发板根文件系统存在/etc/profile.d
文件夹,启动时/etc/profile
自动配置里面的内容,故在/etc/profile.d
里面新建qt_env.sh
(新建完成需要设置权限),内容为:
#!/bin/sh
export QT_ROOT=/opt/QT5.12.3_csky
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fb0
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_FONTDIR=$QT_ROOT/fonts
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib:$QT_ROOT/lib
此时,重启后如果有编译好QT应用程序,就可以直接运行了(QT5之后不需要-qws)
5.Qt Creator交叉编译环境
5.1安装
sudo apt-get install cmake qt5-default qtcreator
5.2打开
qtcreator
5.3配置
- 打开Qt Creator–>Tools–>Options–>Build & Run–>Compilers–>Add GCC(ABI:unknown)–>Apply
1.Add GCC C
2.Add GCC C++
- 切换到Debuggers标签,点击“Add”按钮,选择gdb,Apply,如下:
- 切换到Qt Versions标签,点击“Add”按钮,选择qmake,Apply,如下:
- 切换到Kits标签,点击“Add”按钮,设置如下:
5.4工程编译
- 新建文件夹
C-SKY/QtCreator
用于放置QT工程 - 新建工程
- 编译
5.5运行
拷贝程序至开发板运行即可
参考
[1]https://c-sky.github.io/docs/gx6605s.html
[2]https://blog.****.net/vickycheung3/article/details/82182136
[3]****