用QT去操作V3S 是不是不要操作显示缓冲区 直接将编译后的工程放到V3S里面
离线
生成二进制文件,在目标机器跑就可以了。
不明白你的意思
详细描述一下
我现在是QT下面make了 生成了二进制文件 饭后直接放到V3S上面去跑
离线
就是我现在用QT就创建了一个UI 我make了也生成了二进制文件,然后直接放到V3S里面去跑发现跑不起来
离线
我从那个帖子中没有看到关于QT操作的
我现在编译了我改了
CC = arm-linux-gnueabihf-gcc -lts
CXX = arm-linux-gnueabihf-g++ -lts
离线
可以readelf 或者 直接file看下那KADIBCM_GUI
离线
我现在用qmake 了 也出现了Makefile
在MakeFIle里面修改了这两处就编译不通过 以前的是gcc 和g++
CC = arm-linux-gnueabihf-gcc -lts
CXX = arm-linux-gnueabihf-g++ -lts
出现的错误是
root@ubuntu:/home/share/KADIBCM_GUI/KADIBCM_GUI/KADIBCM_GUI# make
g++ -Wl,-O1 -Wl,-rpath,/opt/Qt5.4.1/5.4/gcc_64 -Wl,-rpath,/opt/Qt5.4.1/5.4/gcc_64/lib -o KADIBCM_GUI tmp/obj/main.o tmp/obj/mainwindow.o tmp/obj/moc_mainwindow.o -L/home/share/opt/Qt5.4.1/5.4/gcc_64/lib -lQt5Widgets -L/opt/Qt5.4.1/5.4/gcc_64/lib -lQt5Gui -lQt5Core -lGL -lpthread
/usr/bin/ld: tmp/obj/main.o: Relocations in generic ELF (EM: 40)
/usr/bin/ld: tmp/obj/main.o: Relocations in generic ELF (EM: 40)
/usr/bin/ld: tmp/obj/main.o: Relocations in generic ELF (EM: 40)
tmp/obj/main.o: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
Makefile:205: recipe for target 'KADIBCM_GUI' failed
make: *** [KADIBCM_GUI] Error 1
离线
你的 qmake 可执行程序的全路径是什么,我看看有没有错
我不该Makefile里面的 CC 和CXX的时候就不会有错
离线
CC = gcc
CXX = g++
如果生成的Makefile这两个参数是这样的然后我就直接make就不会有错了
如果是该为CC = arm-linux-gnueabihf-gcc -lts
CXX = arm-linux-gnueabihf-g++ -lts 这样就报错
离线
现在是这样的情况了 刚才那个问题没有了
离线
说明你生成的Qt工具链不正确,参考我前面给的链接。
现在就是编译那个tslib没有找到
离线
晕哥 说:说明你生成的Qt工具链不正确,参考我前面给的链接。
现在就是编译那个tslib没有找到
buildroot 根目录打开 .config 文件,直接搜索 tslib,然后启用。
离线
无情一刀 说:晕哥 说:说明你生成的Qt工具链不正确,参考我前面给的链接。
现在就是编译那个tslib没有找到
buildroot 根目录打开 .config 文件,直接搜索 tslib,然后启用。
我没有用buildroot
离线
显示那个MakeFIla文件里面的编译环境是
CC = arm-linux-gnueabihf-gcc -lts
CXX = arm-linux-gnueabihf-g++ -lts 这个
但是外面去编译的总是提示file not recognized: File format not recognized这样库错误
离线
显示那个MakeFIla文件里面的编译环境是
CC = arm-linux-gnueabihf-gcc -lts
CXX = arm-linux-gnueabihf-g++ -lts 这个但是外面去编译的总是提示file not recognized: File format not recognized这样库错误
昨天远程帮你看过了,
就是你编译出来的 Qt 工具链有问题
https://blog.csdn.net/u011113596/article/details/80325081
你编译时候参数没设置好,
所以编译出来是 x86_amd64 的。
离线
无情一刀 说:显示那个MakeFIla文件里面的编译环境是
CC = arm-linux-gnueabihf-gcc -lts
CXX = arm-linux-gnueabihf-g++ -lts 这个但是外面去编译的总是提示file not recognized: File format not recognized这样库错误
昨天远程帮你看过了,
就是你编译出来的 Qt 工具链有问题
https://blog.csdn.net/u011113596/article/details/80325081你编译时候参数没设置好,
所以编译出来是 x86_amd64 的。
我现在的QT工具链有问题 那我现在是不是要重新安装QT 工具,
离线
重新编译仍然很麻烦, 用昨天那个 buildroot 里面的 qmake 就可以了。
对应的根文件系统也是用 buildroot-2018.08.2/output/target 这个目录的文件制作就可以了。
你说这个文件系统 我以后就是用制作文件系统的时候mkfs.jffs2 -s 0x100 -e 0x10000 -p 0xAF0000 -d rootfs/ -o jffs2.img
就将rootfs指向target这个目录就可以了是吧
我试了下 编译的出来的文件系统有37M左右 我们的内存没有这么大
最近编辑记录 无情一刀 (2019-04-13 10:00:20)
离线
晕哥 说:重新编译仍然很麻烦, 用昨天那个 buildroot 里面的 qmake 就可以了。
对应的根文件系统也是用 buildroot-2018.08.2/output/target 这个目录的文件制作就可以了。
你说这个文件系统 我以后就是用制作文件系统的时候mkfs.jffs2 -s 0x100 -e 0x10000 -p 0xAF0000 -d rootfs/ -o jffs2.img
就将rootfs指向target这个目录就可以了是吧
我试了下 编译的出来的文件系统有37M左右 我们的内存没有这么大
酌情删掉一些不要的文件, 看看哪些文件比较大, 先删掉。
离线
对于下面三个库 不是很了解 他们作用是什么?
离线
都是Qt的核心库,动态链接库。
你的 Flash 多大, 是 JFFS2 根文件系统吗? 根文件系统分配的flash空间多大?
是的 就是跟文件系统 主要是现在flash 总的只有16M
离线
晕哥 说:都是Qt的核心库,动态链接库。
你的 Flash 多大, 是 JFFS2 根文件系统吗? 根文件系统分配的flash空间多大?
是的 就是跟文件系统 主要是现在flash 总的只有16M
那装下 Qt 有点难度啊,
得了解一下 squashfs
https://whycan.cn/t_2179.html
https://whycan.cn/t_2170.html
如果上面还不行就得剪裁 Qt5了,
如果上面还不行就得剪裁 Qt4了.
离线
无情一刀 说:晕哥 说:都是Qt的核心库,动态链接库。
你的 Flash 多大, 是 JFFS2 根文件系统吗? 根文件系统分配的flash空间多大?
是的 就是跟文件系统 主要是现在flash 总的只有16M
那装下 Qt 有点难度啊,
得了解一下 squashfshttps://whycan.cn/t_2179.html
https://whycan.cn/t_2170.html如果上面还不行就得剪裁 Qt5了,
如果上面还不行就得剪裁 Qt4了.
就是因为内存太小了
你说的剪裁QT是什么意思啊 我用QT编译好了工程 直接放到V3S板子里面去 就可以显示了吧????
我现在就是想的就是用SDnand去启动用个128M,
离线
sd nand 空间确实够大了。
剪裁就是通过配置去掉不需要的功能降低动态链接库大小。
其实用SD nand 我们是用那种小型的 直接焊接上去了,但是就会带来一个问题 如果我下次要更新程序程序怎么办??
离线
晕哥 说:sd nand 空间确实够大了。
剪裁就是通过配置去掉不需要的功能降低动态链接库大小。其实用SD nand 我们是用那种小型的 直接焊接上去了,但是就会带来一个问题 如果我下次要更新程序程序怎么办??
1. 如果Linux系统跑起来了, 通过Linux下的读写指令(open, read, write, close)更新分区数据
2. 可以在 u-boot 下装载 ext4/vfat 分区, 通过u-boot 指令更新.
3. 通过 sunxi-fel 命令把 u-boot和 zImage下载到 DRAM, 然后把Linux系统跑起来,
把通过 usb gadget 把整片 sd nand 模拟成一个U盘,
然后电脑系统就可以像读卡器一样读写 sd nand 芯片了.
以上都是想法, 未经实践。
离线