做了个Nuc972的板子,编译uboot、kernel、buildroot用的使arm_linux_gcc 4.8.5。
builrdroot制作的带rootfs带的qt版本使5.6。
并且buildroot的Output/host/bin里有交叉编译用的qmake。
那么,我如果想在win下编译程序,然后在nuc972板上运行,该怎么操作?除了用虚拟机。
离线
搜到了些文章,步骤是这样的:
在win下,
安装minGW;
安装arm-linux-xxx-gcc.exe(这个不知道和Linux下的arm-linux-xxx-gcc是否是一回事?);
下载qt-everysrc源码;
在minGW里移植qt源码,编译器指定为安装的arm-linux-xxx-gcc.exe,生成库文件及qmake(是不是只要qmake就可以了?);
win下的Qt creator里指定gcc和qmake(忘了这里需要不需要指定库)路径,然后就可以编译了。
这里,应该可以在mingGW下qmake,make命令编译qt程序吧。
是否可以把linux下已经交叉编译好的qmake及对应gcc,直接复制过来,然后在win的minGW环境下执行gcc及qmake命令?
最近编辑记录 Gentlepig (2020-05-22 15:52:47)
离线
搜到了些文章,步骤是这样的:
在win下,
安装minGW;
安装arm-linux-xxx-gcc.exe(这个不知道和Linux下的arm-linux-xxx-gcc是否是一回事?);
下载qt-everysrc源码;
在minGW里移植qt源码,编译器指定为安装的arm-linux-xxx-gcc.exe,生成库文件及qmake(是不是只要qmake就可以了?);
win下的Qt creator里指定gcc和qmake(忘了这里需要不需要指定库)路径,然后就可以编译了。这里,应该可以在mingGW下qmake,make命令编译qt程序吧。
是否可以把linux下已经交叉编译好的qmake及对应gcc,直接复制过来,然后在win的minGW环境下执行gcc及qmake命令?
实际上你只要把rootfs和qt.config配置上的路径改对,复制一份到windows的minigw上,配置下qt就可以了,qmake和其他东西其实是通用的,只需要mkspec和qtgloabl.h正确就行了。顺带一体debian上实现qt程序交叉编译也可以用这个思路,根本不需要什么交叉环境,贼方便。
离线
实际上你只要把rootfs和qt.config配置上的路径改对,复制一份到windows的minigw上,配置下qt就可以了,qmake和其他东西其实是通用的,只需要mkspec和qtgloabl.h正确就行了。顺带一体debian上实现qt程序交叉编译也可以用这个思路,根本不需要什么交叉环境,贼方便。
那么,minGW下的gcc呢?也只直接复制linux下的arm-linux-gcc就可以吗?还是在win下专门安装个arm-linux-gcc.exe?
离线
那么,minGW下的gcc呢?也只直接复制linux下的arm-linux-gcc就可以吗?还是在win下专门安装个arm-linux-gcc.exe?
安装他的,只要g++的版本minigw小于编译的gcc就没有问题了
离线
我在Linux下利用buildroot构建的输出文件里有host目录,里面有Linux下交叉编译qt程序的qmake。
我把这个host文件夹整个复制到win下,然后在win下进入msys或minGW,进入到该目录,执行qmake -V,结果却不能执行...
@DESKTOP-HQF1R40 MSYS /f/MPU/Nuvoton/Nuc972/host/usr/bin
$ ./qmake -V
-bash: ./qmake: 无法执行二进制文件: Exec format error
最近编辑记录 Gentlepig (2020-05-26 16:03:26)
离线
这个没理由可以执行吧.
离线
这个没理由可以执行吧.
这么说,我还得在win的minGW下移植一遍qt?
离线
这么说,我还得在win的minGW下移植一遍qt?
感觉难度挺大的,windows下用同一个目标平台是arm的gcc版本的编译出Qt SDK, 还是挺折腾的,能力有限,只能想到这个。
离线
感觉难度挺大的,windows下用同一个目标平台是arm的gcc版本的编译出Qt SDK, 还是挺折腾的,能力有限,只能想到这个。
因为看到上边的朋友说的,可能是我理解错了。也可能是我的方法不对。
离线
因为看到上边的朋友说的,可能是我理解错了。也可能是我的方法不对。
是呀,我也没看懂,大佬有没有详细教程
实际上你只要把rootfs和qt.config配置上的路径改对,复制一份到windows的minigw上,配置下qt就可以了,qmake和其他东西其实是通用的,只需要mkspec和qtgloabl.h正确就行了。顺带一体debian上实现qt程序交叉编译也可以用这个思路,根本不需要什么交叉环境,贼方便。
离线
我觉得是你们理解错了,我指的是用minigw的qmake,不需要你再去生成一个。只需要指定好mkspec的东西就行,
qmake其实也就是一个按规则生成makefile的程序罢了,更本不需要这么折腾。如果是clang的qt那么更完美,甚至
只需要个sysroot就行了,本质上能不能用还要看minigw的gcc与实际gcc有没有版本差异,毕竟C++依赖于GCC版
本,不过不建议这么玩,实在是费力又不讨好。不过这个确实是使用debian等发行版进行交叉编译的qt程序的好办法
可以直接生成对应版本而不受影响。
离线
我觉得是你们理解错了,我指的是用minigw的qmake,不需要你再去生成一个。只需要指定好mkspec的东西就行,
qmake其实也就是一个按规则生成makefile的程序罢了,更本不需要这么折腾。如果是clang的qt那么更完美,甚至
只需要个sysroot就行了,本质上能不能用还要看minigw的gcc与实际gcc有没有版本差异,毕竟C++依赖于GCC版
本,不过不建议这么玩,实在是费力又不讨好。不过这个确实是使用debian等发行版进行交叉编译的qt程序的好办法
可以直接生成对应版本而不受影响。
https://whycan.cn/files/members/1749/2020-05-27_13-06.png
https://whycan.cn/files/members/1749/2020-05-27_13-11.png
看你的截图,像是在win下的minGW环境里打开了win的qmake.exe程序。
我试了下,用mingw32和msys尝试打开win的qmake.exe,都报错:未找到命令。
用win的cmd终端倒是可以执行。
最近编辑记录 Gentlepig (2020-05-27 14:53:50)
离线
看你的截图,像是在win下的minGW环境里打开了win的qmake.exe程序。
我试了下,用mingw32和msys尝试打开win的qmake.exe,都报错:未找到命令。
https://whycan.cn/files/members/1209/QQ截图20200527144737.jpg https://whycan.cn/files/members/1209/QQ截图20200527144725.jpg
用win的cmd终端倒是可以执行。
https://whycan.cn/files/members/1209/QQ截图20200527144745.jpg
大胆的猜测了下,你这个应该是下载的qt提供的二进制吧,我使用minigw安装的,不过没什么差异的,都能用,只要qmake还能跑就行
离线
大胆的猜测了下,你这个应该是下载的qt提供的二进制吧,我使用minigw安装的,不过没什么差异的,都能用,只要qmake还能跑就行
这个是win下下载的win版的qt安装程序安装后成成的qmake.exe。
离线
QT 想用,以后去学习下,先装一个玩下
离线
新塘的bsp里给的交叉编译工具是:arm-nuvoton-linux-uclibcgnueabi/4.8.5。
我去linaro找到了win版的arm-linaro-linux-gnueabihf-4.8.exe,不知道行不行。
新塘的那个是uclib,而且没有hf后缀。
离线