9382
- 收藏
- 点赞
- 分享
- 举报
qt embeded 移植到3531
这几天编译了QT试试,几经周折终于成功,分享下。
1、下载
ftp://ftp.qt.nokia.com/qt/source/qt-embedded-linux-opensource-src-4.5.3.tar.gz
解压
2、进入 mkspecs/qws 目录
cp -rf linux-arm-g++ linux-hisi3531-g++
进入 linux-hisi3531-g++ 目录
修改 qmake.conf
# modifications to g++.conf
QMAKE_CC = arm-hismall-linux-gcc
QMAKE_CXX = arm-hismall-linux-g++
QMAKE_LINK = arm-hismall-linux-g++
QMAKE_LINK_SHLIB = arm-hismall-linux-g++
# modifications to linux.conf
QMAKE_AR = arm-hismall-linux-ar cqs
QMAKE_OBJCOPY = arm-hismall-linux-objcopy
QMAKE_STRIP = arm-hismall-linux-strip
也可以改成自己的编译器名称
3、configure
./configure --prefix=/opt/qte -static -opensource -confirm-license -qt-sql-sqlite -qt-gfx-linuxfb -plugin-sql-sqlit -no-qt3support -no-phonon -no-svg -no-webkit -no-scripttools -qt-zlib -no-gif -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-rpath -no-pch -no-3dnow -no-openssl -no-nis -no-cups -no-dbus -embedded arm -platform linux-g++ -xplatform qws/linux-hisi3531-g++ -little-endian -qt-freetype -no-opengl -no-glib -nomake demos -nomake examples -nomake docs -nomake tools
简要说明:
--prefix=/opt/qte 编译后的安装目录
-static 编译成静态库 *.a , 默认是动态库的 *.so
-xplatform qws/linux-hisi3531-g++ 指定编译器,这个要和第2步的目录对应,如果不一样,会提示找不到编译器。我当时一个地方是linux-hisi3531-g++,另一个地方是linux-hi3531-g++,结果提示找不到编译器,搞得都快放弃了。
其它我也不懂,最后用的时候再说吧
4、make,然后 make install
make 没有问题,但是 make install 有好多问题,没管它,后面能工作的
make install 安装到 /opt/qte 目录,这里面有字库,后面运行程序要用它
5、编译示例程序
进入 examples/dialogs/findfiles
qmake
生成Makefile文件
$(LINK) -static $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
上面这行加了 -static,因为我的romfs里面没有库,所以要全静态编译
然后 make,生成执行文件
6、/tmp/qtembedded-0 目录问题
运行示例程序,提示 /tmp/qtembedded-0 不能建立
发现我的romfs没这个目录,建立tmp目录,重新生成romfs,升级系统
然后 mount -t ramfs /dev/mem /tmp
7、字库问题
运行示例程序,提示 /opt/qte/lib/fonts 找不到
exports QT_QWS_FONTDIR=/home/1/qt/qte/lib/fonts
这个要看自己的目录放哪儿了,我用nfs,目录比较长
8、fb问题
运行示例程序,找不到 fb0
修改 sample_hifb, 编译运行 sample_hifb&
下面是网上找的修改过程,基本可以用,但不完善
最近本人想要在Hi3531平台上运行QT,故有一些心得,写在这里与大家分享一下:
1.首先运行sample中的sample_hifb,以便打开fb0;但是需要对代码做一些修改:
将main函数中的 pthread_create(&phifb0,0,SAMPLE_HIFB_REFRESH,(void *)(&stInfo0));
改成 pthread_create(&phifb0,0,SAMPLE_HIFB_PTHREAD_RunHiFB,(void *)(&stInfo0));
将SAMPLE_HIFB_PTHREAD_RunHiFB函数中的HI_BOOL g_bCompress = HI_TRUE;
改成 HI_BOOL g_bCompress = HI_FALSE;
在
bShow = HI_TRUE;
if (ioctl(pstInfo->fd, FBIOPUT_SHOW_HIFB, &bShow) < 0)
{
printf("FBIOPUT_SHOW_HIFB failed!\n");
munmap(pShowScreen, fix.smem_len);
return HI_NULL;
}
后面加上
if (pstInfo->ctrlkey == 0)
{
while(1)
sleep(5);
}
9、成功运行示例程序
就记了这么多,可能有遗漏。
1、下载
ftp://ftp.qt.nokia.com/qt/source/qt-embedded-linux-opensource-src-4.5.3.tar.gz
解压
2、进入 mkspecs/qws 目录
cp -rf linux-arm-g++ linux-hisi3531-g++
进入 linux-hisi3531-g++ 目录
修改 qmake.conf
# modifications to g++.conf
QMAKE_CC = arm-hismall-linux-gcc
QMAKE_CXX = arm-hismall-linux-g++
QMAKE_LINK = arm-hismall-linux-g++
QMAKE_LINK_SHLIB = arm-hismall-linux-g++
# modifications to linux.conf
QMAKE_AR = arm-hismall-linux-ar cqs
QMAKE_OBJCOPY = arm-hismall-linux-objcopy
QMAKE_STRIP = arm-hismall-linux-strip
也可以改成自己的编译器名称
3、configure
./configure --prefix=/opt/qte -static -opensource -confirm-license -qt-sql-sqlite -qt-gfx-linuxfb -plugin-sql-sqlit -no-qt3support -no-phonon -no-svg -no-webkit -no-scripttools -qt-zlib -no-gif -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-rpath -no-pch -no-3dnow -no-openssl -no-nis -no-cups -no-dbus -embedded arm -platform linux-g++ -xplatform qws/linux-hisi3531-g++ -little-endian -qt-freetype -no-opengl -no-glib -nomake demos -nomake examples -nomake docs -nomake tools
简要说明:
--prefix=/opt/qte 编译后的安装目录
-static 编译成静态库 *.a , 默认是动态库的 *.so
-xplatform qws/linux-hisi3531-g++ 指定编译器,这个要和第2步的目录对应,如果不一样,会提示找不到编译器。我当时一个地方是linux-hisi3531-g++,另一个地方是linux-hi3531-g++,结果提示找不到编译器,搞得都快放弃了。
其它我也不懂,最后用的时候再说吧
4、make,然后 make install
make 没有问题,但是 make install 有好多问题,没管它,后面能工作的
make install 安装到 /opt/qte 目录,这里面有字库,后面运行程序要用它
5、编译示例程序
进入 examples/dialogs/findfiles
qmake
生成Makefile文件
$(LINK) -static $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
上面这行加了 -static,因为我的romfs里面没有库,所以要全静态编译
然后 make,生成执行文件
6、/tmp/qtembedded-0 目录问题
运行示例程序,提示 /tmp/qtembedded-0 不能建立
发现我的romfs没这个目录,建立tmp目录,重新生成romfs,升级系统
然后 mount -t ramfs /dev/mem /tmp
7、字库问题
运行示例程序,提示 /opt/qte/lib/fonts 找不到
exports QT_QWS_FONTDIR=/home/1/qt/qte/lib/fonts
这个要看自己的目录放哪儿了,我用nfs,目录比较长
8、fb问题
运行示例程序,找不到 fb0
修改 sample_hifb, 编译运行 sample_hifb&
下面是网上找的修改过程,基本可以用,但不完善
最近本人想要在Hi3531平台上运行QT,故有一些心得,写在这里与大家分享一下:
1.首先运行sample中的sample_hifb,以便打开fb0;但是需要对代码做一些修改:
将main函数中的 pthread_create(&phifb0,0,SAMPLE_HIFB_REFRESH,(void *)(&stInfo0));
改成 pthread_create(&phifb0,0,SAMPLE_HIFB_PTHREAD_RunHiFB,(void *)(&stInfo0));
将SAMPLE_HIFB_PTHREAD_RunHiFB函数中的HI_BOOL g_bCompress = HI_TRUE;
改成 HI_BOOL g_bCompress = HI_FALSE;
在
bShow = HI_TRUE;
if (ioctl(pstInfo->fd, FBIOPUT_SHOW_HIFB, &bShow) < 0)
{
printf("FBIOPUT_SHOW_HIFB failed!\n");
munmap(pShowScreen, fix.smem_len);
return HI_NULL;
}
后面加上
if (pstInfo->ctrlkey == 0)
{
while(1)
sleep(5);
}
9、成功运行示例程序
就记了这么多,可能有遗漏。
我来回答
回答10个
时间排序
认可量排序
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
认可0
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
相关问答
-
172014-11-13 19:46:24
-
2018-10-24 10:50:53
-
2016-03-24 16:52:16
-
2016-09-14 14:11:35
-
2015-03-04 10:25:35
-
2020-06-29 11:45:28
-
2016-09-09 16:33:25
-
2018-05-28 16:26:37
-
2016-07-22 12:00:58
-
2017-02-23 15:45:39
-
2015-11-06 14:07:25
-
2015-07-07 11:26:28
-
2017-08-16 17:10:52
-
2017-04-12 14:44:07
-
02014-11-12 12:52:31
-
2020-10-29 11:22:39
-
2021-01-27 14:37:36
-
2015-11-13 10:45:51
-
02015-05-26 15:26:29
无更多相似问答 去提问
点击登录
-- 积分
-- E币
提问
—
收益
—
被采纳
—
我要提问
切换马甲
上一页
下一页
悬赏问答
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
-
50SS928 运行PQtools 拼接 推到设备里有一半画面会异常
-
53536AV100的sample_vdec输出到CVBS显示
-
10海思板子mpp怎么在vi阶段改变视频数据尺寸
-
10HI3559AV100 多摄像头同步模式
-
9海思ss928单路摄像头vio中加入opencv处理并显示
-
10EB-RV1126-BC-191板子运行自己编码的程序
-
10求HI3519DV500_SDK_V2.0.1.1
-
5有偿求HI3516DV500 + OV5647驱动
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
提醒
你的问题还没有最佳答案,是否结题,结题后将扣除20%的悬赏金
取消
确认
提醒
你的问题还没有最佳答案,是否结题,结题后将根据回答情况扣除相应悬赏金(1回答=1E币)
取消
确认