QT程序移植成功经验分享
第一步:搭建好交叉编译环境arm-linux-gcc-4.3.2.第二步:交叉编译用于将QT代码编译为ARM平台上的可执行文件的库文件,复制qt-everywhere-opensource-src-4.7.1.tar.gz到/home/liu下面,解压出来,该文件夹下面build-all为编译脚本,qt-everywhere-opensource-src-4.7.1.tar.gz为源码包,打开终端,切换到/home/liu/qt-everywhere-opensource-src-4.7.1目录,执行编译脚本./build-all开始编译,大概两三个小时编译完成,此时会自动在/opt/下面生成文件夹qt-4.7.1,同时在当前目录生成qt-everywhere-opensource-src-4.7.1文件夹,该文件夹下的demo目录为示例,可以直接拷贝到开发板运行.
第三步:设置QT的编译环境,如果没有设置的话,每次都需要/opt/qt-4.7.1/bin/qmake 来编译程序,默认安装了qt-sdk-linux-x86-opensource-2010.05.1.bin后默认用的qmake是用来编译linux下程序用的,而不是嵌入式linux下的,需要重新设置环境变量,打开/etc/profile文件,最后添加
export PATH="/opt/qt-4.7.1/bin:$PATH"
这样的话qmake -v可以看到当前qmake为/opt/qt-4.7.1下面的.
第四步:测试窗口程序main.cpp
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
QApplication a(argc,argv);
QLabel *label=new QLabel("hello!!!");
label->setGeometry(10,10,200,80);
label->setVisible(true);
label->show();
return a.exec();
}
保存到/home/liu/hello/下
打开终端,cd /home/liu/hello切换到hello目录
执行qmake -project,此时生成了hello.pro文件
执行qmake,此时生成了Makefile文件
执行make,此时生成了hello可执行文件
可以通过命令file /home/liu/hello/hello来查看可执行文件的运行环境,出现for GNU/Linux 2.6.14字样,说明可以运行在linux2.16.14内核版本的嵌入式linux系统上
第五步:拷贝hello到/bin目录下,赋予可执行文件权限chmod 777 hello
./hello
看到了吧,出来咯!
8:linux交叉编译环境搭建
第一步:准备arm-linux-gcc-4.3.2.tgz文件,将其解压到/home/administrator下面。解压过程需要一段时间,解压后形成了usr/local/文件夹。
第二步:将usr/local/arm文件夹复制到根目录下的/usr/local下。
命令:cd usr/local cp -rv arm /usr/local/
这个过程大概需要一分钟,完成后交叉编译的程序集都在/usr/local/arm/4.3.2/bin下面。
第三步:修改环境变量,找到/etc/profile,以管理员身份打开,最后一行增加
export PATH="$PATH:/usr/local/arm/4.3.2/bin"
第四步:使环境变量生效,方法一是重启电脑,方法二命令执行
source /etc/profile
echo $PATH查看环境变量
显示内容中包含了/usr/local/arm/4.3.2/bin则说明设置成功。
第五步:测试编译环境是否OK,执行arm-linux-gcc.4.3.2 -v
显示gcc version 4.3.2字样,说明编译环境设置成功。
第六步:编写测试文件hello.c
#include <stdio.h>
int main(int argc, char const *argv[])
{
/* code */
printf("feiyangqingyun2013\n");
return 0;
}
第七步:编译hello.c
arm-linux-gcc -o hello hello.c
此时会在当前目录下生成hello可执行文件(ARM平台),如果程序有错,编译通不过。
可以用file hello命令查看生成的文件类型。
如果想在PC机上看结果,可以执行下面的命令
gcc hello.c(会生成a.out文件)
./a.out 感谢楼主,楼主如果有新的资源可以多多发帖啊 :lol多谢分享,Mark一下
页:
[1]