1. linux 下用arm体系QT编译问题(目前我系统里有X86 和 arm体系(老师编好的)的QT各一个)
貌似是缺少系统库,有些版本的linux编译qt是会出现缺少系统库而导致编译不成功的问题,不是很推荐用最新的编译器来编译,其实2.4的内核和3.4.5的编译器做qt就已经足够了,你可以去查查看那些版本的linux下可以成功的编译qt,安装的时候尽可能把开发用的库都选上,不然就只有自己再去打补丁,
仅作参考
2. Linux系统上用QT编写ARM9继电器控制程序的问题。 想写个QT界面程序到arm板子上,通过界面的按钮来控制继电
以下是单片机实践团为您解答:
1)既然你已经在windows下面搞qt了,转到linux下面就没啥编程问题了,都一样的只是环境搭建有一点点不一样。
2)windows下面直接用的qtsdk for windows的吧,其实是人家直接给你做好的环境,建议自己用everywhelesource自己编译了解整个框架的结构,搞清楚windows下面如何显示的问题就差不多清楚了。
3)啰嗦的说,windows下面你虽然能够编译你的代码看到运行界面,不过我猜你没有深入了解这个框架不是mfc他如何调用windows的显示的,其实在linux下面道理也是一样的。
4)下面说说要怎么弄,主要是环境搭建,用你板子的交叉编译器编译qt源码就是那个everywhelesource了,这个主要要搞清楚那个configure,进入目录运行他生成makefile,记得configure后面要带参数,很多的比如你的交叉编译器。你可以用--help来看这些参数的详细说明。这些你要找点专业的文章来看看,英文好点可以直接上官方网站看的,很详细。
5)编译好这个之后其实你就可以直接把windows下面的代码拿来再次编译就行了,不过有一点你控制继电器的话还要你板子的gpio驱动,也就是控制引脚的,一般板子的驱动都有的。
6)如果你要仿真的话还要编译x11版本的qt,这个主要是要得到那个虚拟显存,用于调试用的,不用直接搞到板子上看效果,这个是x86版本提供的快捷方式,一般都用的,嗯很多的,看一些文章吧,毕竟我只能给你说个大纲盖的。
7)再说个你这就零分,不然给你多说点,看着烦。不明白在hi我吧。
3. 请教QT5的移植问题
一、准备
busybox 1.14.1
qt-embedded-linux-opensource-src-4.5.1
tslib 1.4
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
构建一个新的根文件系统目录,路径为
/root/rootfs
二、具体步骤:
1、编译安装busybox
在最新版。可以参考如下几处要修改的地方:
Busybox Settings ---; Build Options ---; (arm-linux-)Cross Compiler prefix
Busybox Settings ---; Installation Options ---;[]Dont;t use /usr
Busybox Settings ---; Installation Options ---;(/root/rootfs) BusyBox installation prefix
Busybox Settings ---;Busybox Library Tuning ---;[*] Fancy Shell prompts
输入如下命令,编译并安装。
make;make install
2、编译安装tslib
./autogen.sh
./configure -prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
make;make install
安装目录指明为 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/
主要是为了在编译QTE时,不用指定tslib的头文件和库文件,方便以后程序开发。
注意:在做这一步前,需要做一个目录链接
在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目录下
ln -s ../../usr/include ./
3、编译安装QTE
1)、最基本的配置
./configure -prefix /usr -embedded arm -xplatform qws/linux-arm-g++ -depths 16 -qt-mouse-tslib
-prefix /usr 使用这个配置,编译后TE库文件即可放在目标文件系统的/usr/lib下,而不是默认/usr/local/Trolltech/QtEmbedded-4.5.1 这个很深的目录
2)、编译
make
cp lib/* /root/rootfs/usr/lib -rd 将QTE库文件拷贝到根文件系统的目录
cp plugins /root/rootfs/usr -rd 将QTE插件目录拷贝到根文件系统的目录
4、根文件系统的设置
1)、这时/root/rootfs/usr下应该有 bin etc include lib sbin目录
tslib生成的etc目录,包含一个tslib的配置文件 nf,编辑此文件,去掉mole_raw input前的注释
mv etc ../ 移动到rootfs的根目录
2)、进行一次清理操作
arm-linux-strip lib/*.so
arm-linux-strip usr/lib/*.so
3)、编辑etc/profile,添加以下内容
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/nf
export TSLIB_PLUGINDIR=/usr/lib/ts
最后,通过mkyaffs2image 制作镜像,烧写镜像,启动ts_calibrate校验触屏即可。
4. qt交叉编译,为什么make指令调用的是g++,而不是arm-linux-g++
你找下,是不是在哪个Makefile脚本或类似config.mk的脚本里有个变量,变量值为编译器名字的。
它可能是这样的:
CROSS_COMPILE := arm-linux-
HOSTCXX = g++
这两个名字拼起来才是交叉编译器的名字,如果只用了HOSTCXX或者CROSS_COMPILE为空,它就用的g++了
5. linuxARM教程linuxarm教程
arm编程入门教程?
ARM编程入门教程包括:
1.了解ARM处理器的基本结构,如指令集、编程模型及体系结构等;
2.学习ARM编程的基础知识,如寄存器、寻址方式、栈等;
3.了解ARM编程的相关技术,如编译、链接、调试等;
4.熟悉ARM编程的开发工具与环境,如KeilMDK、ARMRealView等;
5.掌握ARM编程应用os相关知识,如CortexM4、Linux等;
6.实现ARM编程应用,如硬件驱动、网络协议及实时操作系统等。
如何将linuxqt程序移植到arm开发板上?
将LinuxQt程序移植到ARM开发板上需要进行以下步骤:交叉编译ARM平台所需的Qt库和应用程序,将生成的可执行文件和Qt库文件复制到ARM开发板上,确保ARM平台上有Qt的运行环境和依赖库,并运行程序。可以使用交叉编译工具链和远程调试等工具完成移植过程。
如何编译armlinux的go?
Golang也就是Go语言,现在已经发行到1.4.1版本了,语言特性优越性和背后Google强大靠山什么的就不多说了。Golang的官方提供了多个平台上的二进制安装包,遗憾的是并非没有发布ARM平台的二进制安装包。ARM平台没办法直接从官网下载二进制安装包来安装,好在Golang是支持多平台并且开源的语言,因此可以通过直接在ARM平台上编译源代码来安装。整个过程主要包括编译工具配置、获取Golang源代码、设置Golang编译环境变量、编译、配置Golang行环境变量等步骤。
注:本文选用树莓派做测试,因为树莓派是基于ARM平台的。
1、编译工具配置
据说下个版本的golang编译工具要使用golang自己来写,但目前还是使用C编译工具的。因此,首先要配置好C编译工具:
1.1在Ubuntu或Debian平台上可以使用sudoapt-getinstallgcclibc6-dev命令安装,树莓派的RaspBian系统是基于Debian修改的,所以可以使用这种方法安装。
1.2在RedHat或CentOS6平台上可以使用sudoyuminstallgcclibc-devel命令安装。
安装完成后可以输入gcc--version命令验证是否成功安装。
2、获取golang源代码
2.1直接从官网下载源代码压缩包。
golang官网提供golang的源代码压缩包,可以直接下载,最新的1.4.1版本源代码链接:https://storage.googleapis.com/golang/go1.4.1.src.tar.gz
2.2使用git工具获取。
golang使用git版本管理工具,也可以使用git获取golang源代码。推荐使用这个方法,因为以后可以随时获取最新的golang源代码。
2.2.1首先确认ARM平台上已经安装了git工具,可以使用git--version命令确认。一般linux平台都安装了git,没有的话可以自行安装,不同平台的安装方法可以参考:http://git-scm.com/download/linux
2.2.2克隆远程golang的git仓库到本地
在终端cd到你想要安装golang的目录,确保该目录下没有名为go的目录。然后以下命令获取代码仓库:
gitclonehttps://go.googlesource.com/go
大陆地区可能会获取失败,在不翻墙的情况下我试了几次都没成功,原因大家都懂的。好在google已经将golang也托管到github上面,所以也可以通过下面命令获取:
gitclonehttps://github.com/golang/go.git
视网络情况,下载可能需要不少时间。我2M的带宽花了将近两个小时才下载完,虽然整个项目不过几十兆==
下载完成后,可以看到目录下多了一个go目录,里面即为golang的源代码,在终端上执行cdgo命令进入该目录。
执行下面命令检出go1.4.1版本的源代码,因为现在已经有新的代码提交上去了,最新的代码可能不是最稳定的:
gitcheckoutgo1.4.1
至此,最新1.4.1发行版的源代码获取完毕
3、设置golang的编译环境变量
主要有GOROOT、GOOS、GOARCH、GOARM四个环境变量需要设置,先解释四个环境变量的意义。
3.1GOROOT
主要代表golang树结构目录的路径,也就是上面git检出的go目录。一般可以不用设置这个环境变量,因为编译的时候默认会以go目录下src子目录中的all.bash脚本运行时的父目录作为GOROOT的值。为了保险起见,可以直接设置为go目录的路径。
3.2GOOS和GOARCH
分别代表编译的目标系统和平台,可选值如下:
GOOSGOARCH
darwin386
darwinamd64
dragonfly386
dragonflyamd64
freebsd386
freebsdamd64
freebsdarm
linux386
linuxamd64
linuxarm
netbsd386
netbsdamd64
netbsdarm
openbsd386
openbsdamd64
plan9386
plan9amd64
solarisamd64
windows386
windowsamd64
需要注意的是这两个值代表的是目标系统和平台,而不是编译源代码的系统和平台。树莓派的RaspBian是linux系统,所以这些GOOS设置为linux,GOARCH设置为arm。
3.3GOARM
表示使用的浮点运算协处理器版本号,只对arm平台有用,可选值有5,6,7。如果是在目标平台上编译源代码,这个值可以不设置,它会自动判断需要使用哪一个版本。
总结下来,在树莓派上设置golang的编译环境变量,可编辑$HOME/.bashrc文件,在末尾添加下面内容:
exportGOROOT=你的go目录路径
exportGOOS=linux
exportGOARCH=arm
编辑完后保存,执行source~/.bashrc命令让修改生效。
4、编译源代码
环境变量配置完成自后就可以开始编译源代码。在go目录下的src子目录中,主要有all.bash和make.bash两个脚本(另外还有两个all.bat和make.bat脚本适用于window平台)。编译实际上就是执行其中一个脚本,两者的区别在于all.bash在编译完成后还会执行一些测试套件。如果希望只编译不测试,可以运行make.bash脚本。使用cd命令进入go下src目录,执行./all.bash或者./make.bash命令即可开始编译。由于硬件情况不同,编译耗费的时间不同。在我的B型树莓派编译过程花费了将近半个小时,编译完成后执行的测试套件又花费了差不多一个小时,总共花费了一个半小时左右。
5、配置golang运行环境变量
编译完成后,go目录下会生成bin目录,里面就是go的运行脚本。为了以后使用方法,可以将这个bin路径添加到PATH环境变量中。同样编辑~/.bashrc文件,因为前面设置过GOROOT环境变量指向go目录了,所以只需要在末尾加上
exportPATH=$PATH:$GOROOT/bin
保存后同样执行source~/.bashrc命令让环境变量生效。
至此,golang源代码编译安装成功。执行goversion应该就能看到当前golang的版本信息,表示编译安装成功。
怎样搭建一个嵌入式开发平台(ARMLINUX)?
嵌入式开发平台一般都是跟着硬件走的。所以首先确定硬件平台,然后下载他们的SDK,里面一般包含Linux系统/内核和相关工具。
一般直接用tar命令解压即可。
在Linux下用QT编写的程序怎么在ARM上运行?
1.想要在开发板上运行,你需要移植QTE.添加arm-linux-交叉编译工具链.把原有的工程交叉编译生产开发板上可以运行的程序.把可执行程序和QTE库考到开发板上.再改一下环境变量就ok了.2.用QtCreator啊.
6. arm嵌入式linux qt入门问题请教
1.qt-x11是支持x11库的qt,用于linuxPc运行环境。qt-embedded是用于嵌入式环境的qt库。
2.可以,只要选对了交叉编译器。
3.qmake是用来生产makefile的,make是通过makefile文件编译成可执行文件的。
4.他是嵌入式的qt库不仅能编译成arm平台的也可以编译成其它平台的,比如mips平台。
5.没有,要适应在真机上调试。
6.qt有个qtconf文件你可以通过修改该文件条件编译qt库,这样可减小qt库的体积,不过有些qt的方法会因为条件编译的qt库儿无法使用。
7.这个需要适配,有时要简单修改一下qt代码。
8.根据qt版本选择,qt的版本高就选择高版本的编译器。编译qt2一定要用2.95.3,qt4用3.4.1。
9.只要配上相应的qt库就可以运行,要运行qt4就需要你自行编译qt4的库。