您尚未登录。

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

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

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
积分: 1

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

早想要这种帖子,大神66666666

离线

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

qwert52312
会员
注册时间: 2020-09-16
已发帖子: 2
积分: 2

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

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

离线

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

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

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

qq635822782 说:

早想要这种帖子,大神66666666

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

离线

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

motata
会员
注册时间: 2020-01-20
已发帖子: 2
积分: 2

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

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

离线

#6 2021-01-17 23:12:55

卓林
会员
注册时间: 2021-01-10
已发帖子: 84
积分: 141.5

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

请问,我将可执行程序拷贝到板子上执行,发现提示找不到文件

# ./test_qt                                                                                                
-sh: ./test_qt: not found
# 

但是实际上文件是在根目录的,

# ls
bin         lib32       mnt         run         test_qt     var
dev         linuxrc     opt         sbin        tets2
etc         lost+found  proc        sys         tmp
lib         media       root        test        usr

是什么原因呢,方便看看吗?

离线

#7 2021-01-17 23:14:23

卓林
会员
注册时间: 2021-01-10
已发帖子: 84
积分: 141.5

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

卓林 说:

请问,我将可执行程序拷贝到板子上执行,发现提示找不到文件

# ./test_qt                                                                                                
-sh: ./test_qt: not found
# 

但是实际上文件是在根目录的,

# ls
bin         lib32       mnt         run         test_qt     var
dev         linuxrc     opt         sbin        tets2
etc         lost+found  proc        sys         tmp
lib         media       root        test        usr

是什么原因呢,方便看看吗?

我把相同的代码用ubuntu的qmake编译后是可以执行的。
并且lib文件夹下也都把需要的文件复制进去了,是不是还需要配置什么东西,环境变量或者别的。

离线

#8 2021-01-18 08:52:52

txl
会员
注册时间: 2018-12-08
已发帖子: 13
积分: 12

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

写得很详细,多谢楼主。抽空去试下。

离线

#9 2021-01-18 15:18:12

armstrong
会员
注册时间: 2019-04-10
已发帖子: 246
积分: 180.5

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

这种手把手的经验很好用!

离线

#10 2021-01-18 16:52:50

LinjieGuo
Moderator
注册时间: 2019-07-24
已发帖子: 565
积分: 570
个人网站

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

卓林 说:
卓林 说:

请问,我将可执行程序拷贝到板子上执行,发现提示找不到文件

# ./test_qt                                                                                                
-sh: ./test_qt: not found
# 

但是实际上文件是在根目录的,

# ls
bin         lib32       mnt         run         test_qt     var
dev         linuxrc     opt         sbin        tets2
etc         lost+found  proc        sys         tmp
lib         media       root        test        usr

是什么原因呢,方便看看吗?

我把相同的代码用ubuntu的qmake编译后是可以执行的。
并且lib文件夹下也都把需要的文件复制进去了,是不是还需要配置什么东西,环境变量或者别的。

看看是不是权限问题,粗暴一点,chmod 777 xxx

最近编辑记录 LinjieGuo (2021-01-18 16:52:57)

离线

#11 2021-01-18 21:46:48

卓林
会员
注册时间: 2021-01-10
已发帖子: 84
积分: 141.5

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

LinjieGuo 说:
卓林 说:
卓林 说:

请问,我将可执行程序拷贝到板子上执行,发现提示找不到文件

# ./test_qt                                                                                                
-sh: ./test_qt: not found
# 

但是实际上文件是在根目录的,

# ls
bin         lib32       mnt         run         test_qt     var
dev         linuxrc     opt         sbin        tets2
etc         lost+found  proc        sys         tmp
lib         media       root        test        usr

是什么原因呢,方便看看吗?

我把相同的代码用ubuntu的qmake编译后是可以执行的。
并且lib文件夹下也都把需要的文件复制进去了,是不是还需要配置什么东西,环境变量或者别的。

看看是不是权限问题,粗暴一点,chmod 777 xxx

试过了,还是一样的。需不需要再文件系统中添加qt支持呢?我并没有做

离线

#12 2021-01-18 21:55:48

卓林
会员
注册时间: 2021-01-10
已发帖子: 84
积分: 141.5

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

应该是我编译器的问题,我用编译qmake时天际的编译器编译一个helloword,也是not found,我再找找编译器吧,现在这个时编译v3s的

离线

楼主 #13 2021-01-18 23:14:11

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

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

卓林 说:

应该是我编译器的问题,我用编译qmake时天际的编译器编译一个helloword,也是not found,我再找找编译器吧,现在这个时编译v3s的

你这个是识别不了你的程序吧?这里你使用的编译器得和你生成文件系统那个编译器是一样的才行。如果你用buildroot的话那么你就用编译buildroot使用的那个编译器来编译qt程序。

离线

#14 2021-01-18 23:59:30

卓林
会员
注册时间: 2021-01-10
已发帖子: 84
积分: 141.5

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

vip888888 说:
卓林 说:

应该是我编译器的问题,我用编译qmake时天际的编译器编译一个helloword,也是not found,我再找找编译器吧,现在这个时编译v3s的

你这个是识别不了你的程序吧?这里你使用的编译器得和你生成文件系统那个编译器是一样的才行。如果你用buildroot的话那么你就用编译buildroot使用的那个编译器来编译qt程序。

我是这么想的,可是buildroot下边没有g++的编译器,即使我添加了c++的支持

离线

楼主 #15 2021-01-19 09:31:43

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

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

buildroot制作根文件系统的时候有两种选择,一种是使用buildroot自己的编译器,还有就是可以自己提供自己下载的编译器然后指定编译器的路径。坑网应该是有这个教程的。如果你说你编译buildroot的编译工具没有g++的话那你只能换一个编译工具编译buildroot了。arm-linux就有arm-linux-g++吧。

离线

#16 2021-01-19 16:23:25

卓林
会员
注册时间: 2021-01-10
已发帖子: 84
积分: 141.5

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

vip888888 说:

buildroot制作根文件系统的时候有两种选择,一种是使用buildroot自己的编译器,还有就是可以自己提供自己下载的编译器然后指定编译器的路径。坑网应该是有这个教程的。如果你说你编译buildroot的编译工具没有g++的话那你只能换一个编译工具编译buildroot了。arm-linux就有arm-linux-g++吧。

是的,昨天已经把arm-linux-g++生成出来了,qmake编译过了,然后。。。用生成的g++编译c程序试了试,结果原来编译可以运行的c程序也是not found了。醉了。。,不过还想请教一个问题,把烧录系统的sd卡挂载再ubuntu里,直接往文件系统里边复制文件,应该没问题吧?

离线

#17 2021-01-21 13:33:36

kaixxss
会员
注册时间: 2019-11-18
已发帖子: 30
积分: 0

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

666

离线

楼主 #18 2021-01-22 09:28:44

vip888888
会员
注册时间: 2020-07-16
已发帖子: 141
积分: 138

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

卓林 说:

是的,昨天已经把arm-linux-g++生成出来了,qmake编译过了,然后。。。用生成的g++编译c程序试了试,结果原来编译可以运行的c程序也是not found了。醉了。。,不过还想请教一个问题,把烧录系统的sd卡挂载再ubuntu里,直接往文件系统里边复制文件,应该没问题吧?

这几天比较忙,没看。原来编译的C程序用arm-linux-再重新编译下就行了。只要识别了文件系统拷贝是肯定没问题的,而且这种问题亲测一下马上就知道了不是么=。=

最近编辑记录 vip888888 (2021-01-22 09:29:10)

离线

#19 2021-01-22 11:31:06

卓林
会员
注册时间: 2021-01-10
已发帖子: 84
积分: 141.5

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

哈哈,感谢感谢,已经弄出来

离线

#20 2023-04-23 11:34:41

dingxmhan
会员
注册时间: 2020-06-11
已发帖子: 17
积分: 7

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

有大佬提供一下镜像不。。。

离线

#21 2023-08-10 09:51:59

joy95611
会员
注册时间: 2023-08-09
已发帖子: 8
积分: 8

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

这个帖子非常详细。 感谢分享, 我正在搞全志的QT5, 遇到不少问题, 一个一个解决了,还是卡在一个地方。
看来我还是先看看QT4能不能搞定

离线

#24 2024-02-06 13:04:23

wl989898
会员
注册时间: 2024-01-15
已发帖子: 35
积分: 3

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

我按这个操作https://en.wiki.sipeed.com/soft/Lichee/zh/Nano-Doc-Backup/build_sys/onekey.html
没有权限执行

Starting logging: OK
Initializing random number generator... done.

Welcome to Lichee Pi
Lichee login: root
Password:
Login incorrect
Lichee login: licheepi
Password:
Login incorrect
Lichee login: root
Password:
# ls
littlevgl_demo
# ./littlevgl_demo
-sh: ./littlevgl_demo: Permission denied
# chmod 777 littlevgl_demo
# ./littlevgl_demo
-sh: ./littlevgl_demo: Permission denied
# ls
littlevgl_demo
# cd /user/bin
-sh: cd: can't cd to /user/bin
# ls
littlevgl_demo
# pwd
/root

离线

页脚

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

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