WhyCan Forum(哇酷开发者社区)

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

#1 2020-09-18 20:55:24

vip888888
会员
注册时间: 2020-07-16
累计积分: 96

f1c100S(licheepi_nano)的linux上运行QT搭建过程

1硬件&需求,licheepi_nano一块(其实什么板子都不重要能上linux能驱动LCD就可以了),环境虚拟机Ubuntu18.04 文字有点长整个过程其实用不了多少时间
我这是一次就通过了也没啥大毛病,比想象中的简单多了。
20200918_191107.jpg20200918_191055.jpg
上面就是我的渣渣板了,屏幕好像是野火的一块电容屏,整了一个块板子给连上还挺好用,这都不是重点。

2.新建个目录然后下载wget http://mirrors.sohu.com/qt-all/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz
这是QT的包,你如果不想要4.8.7那你可以下载其他版本的,当然其他版本的配置可能就不同了,不过大体是这样,别问我为什么用4.8.7因为我
刚好有这个的项目需求,咱只说过程。 tar -xzvf qt-everywhere-opensource-src-4.8.7.tar.gz 解压。

3.进入qt源码包跟目录,然后编辑vim mkspecs/linux-arm-gnueabi-g++/qmake.conf 然后修改成你自己的编译工具链我这里用的是arm-none-linux-gnueabi所以我统一修改
修改前
vim1.png
修改后
vim2.png

4.配置 这里实际肯定是需要g++来编译qmake的不过我相信能搞qt了工具链这些肯定会装的就不多说了。QT根目录运行如下命令。
./configure -release -xplatform linux-arm-gnueabi-g++  -prefix /opt/qt4.8.7_armlib -opensource -confirm-license -qt-sql-sqlite -qt-gfx-linuxfb -plugin-sql-sqlit -no-qt3support -no-phonon -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-zlib -no-gif -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-rpath -no-pch -no-3dnow -no-avx -no-neon -no-openssl -no-nis -no-cups -no-dbus -embedded arm -platform linux-g++ -little-endian -qt-freetype -no-opengl -no-glib -nomake demos -nomake examples -nomake docs
简单说明下,如果需要知道详细可以./configure --help
-release:编译的是release版本
-xplatform: 指定交叉编译器配置的目录(读取里面的qmake.config。里面我们修改了编译工具,就是你编译运行的最终库是在什么平台(我们这里是arm上)运行的。)
-platform:  我这里没加因为默认是linux-g++。这个不要和上面那个混淆了,这个是编译qmake用的,因为需要使用qmake来生成qt的工程和makefile。其实就是指定你交叉编译的平台主机,简单说明就是你写程序和编译程序的平台。
-prefix:指定安装目录,根据自己喜好。
-opensource:表示开源许可
主要的也就是这几个关键的东西了

5.make -j8 这个后面这个8可以 windows下任务栏 性能CPU,看有几个逻辑处理器 就用几个,这样编译的快。虚拟机的话可能看分配了几个吧。

6.安装库make install 这样就会拷贝编译好的库到你prefix 指定的目录下。 结果如下图
vim3.png
7.qt库目录下有个bin里面有个qmake这好东西记住了,然后lib下就是编译的arm下的一些动态库了,这个我们等会要拷贝到荔枝派上的。

8. 然后随便在哪新建个目录 mkdir helloworld 然后创建个hello.cpp输入如下代码:
#include<QApplication>

#include<QLabel>

int main(int argc, char** argv)

{

   QApplication app(argc,argv);

   QLabel *label = new QLabel("Hello wyhcan!");
   label->setGeometry(300,100,200,200);
   label->show();

   return app.exec();

}
然后就的用上我们上面说的qmake了。没有加入查找目录就带上路径运行qmake
在hello.cpp 目录下
1. qmake -project 生成helloworld.pro 这个名字是根据你的工程目录名字来命令的
2. qmake helloworld.pro 生成Makefile
3. make 生成可运行程序helloworld

9.最后将 prefix 你指定库目录下的lib里的所有文件拷贝到荔枝派的linux根目录的lib下,这里还有一个库 就是libstdc++.so.6这个c库也需要拷贝,至于这个文件就在你指定的工具链的lib里面 具体可以使用find 搜索到。最后拷贝记得把你的运行程序helloworld也拷贝到你的开发板上。
上电运行./heloworld -qws。
然后你可能会遇到 Cannot create semaphore /tmp/qtembedded -0的错误这是因为Qt需要用到 System V IPC进程通讯,这个时候你需要重新配置内核搜索 System V IPC 然后开启重新编译更换内核,正常情况下这个选项应该是在General setup里面。

10.搞好再运行。
3.jpg

离线

#2 2020-09-18 21:19:22

qq635822782
会员
注册时间: 2020-09-18
累计积分: 1

Re: f1c100S(licheepi_nano)的linux上运行QT搭建过程

早想要这种帖子,大神66666666

离线

#3 2020-09-19 06:21:10

qwert52312
会员
注册时间: 2020-09-16
累计积分: 2

Re: f1c100S(licheepi_nano)的linux上运行QT搭建过程

太强了,膜拜大佬,太需要这方面的学习了!

离线

#4 2020-09-20 22:48:43

vip888888
会员
注册时间: 2020-07-16
累计积分: 96

Re: f1c100S(licheepi_nano)的linux上运行QT搭建过程

qq635822782 说:

早想要这种帖子,大神66666666

神水贴,你这QQ注册可真行

离线

#5 2020-10-30 09:41:43

motata
会员
注册时间: 2020-01-20
累计积分: 2

Re: f1c100S(licheepi_nano)的linux上运行QT搭建过程

真强大,简洁明了。马上试下去。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB