• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

交叉编译的知识和操作

武飞扬头像
kpler
帮助2

1,为什么要交叉编译,交叉编译是什么

交叉编译 是在一个平台上生成另一个平台上的可执行代码。
我们再windows上面编写C51代码,并编译成可执行代码,如xx.hex,是在c51上面运行,不是在windows上面运行
我们在ubuntu上面编写树莓派的代码,并编译成可执行代码,如a.out,是在树莓派上面运行,不是在ubuntu linux上面运行
编译:是在一个平台上生成在该平台上的可执行代码
C51 交叉编译的发生在keil(集成环境上面)
stm32

学新通

2,交叉编译需要用到什么

交叉编译器、交叉编译工具链

3,安装交叉编译工具链

a,下载好目标机的的交叉编译工具链
b,新建一个文件夹放下下好的交叉工具安装包,使用命令

unzip tools-master.zip //解压
cd /home/CLC/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin//进入当前文件夹

找到我们要用的交叉编译链。
c,配置环境变量。
用echo $PATH 查看当前环境变量。
在用命令

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/CLC/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

其中/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:这个不变;后面的那一坨为交叉编译链的所在地方。
这种方法只是临时有效。
d,永久有效的方法:
使用命令cd回到工作目录在使用命令vi .bashrc在最下面加入export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/CLC/lessonPI/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin//交叉编译链的路径
在使用命令source .bashrc加载配置文件生效
e,检查交叉编译是否完成
使用该交叉编译链编译文件。
在使用命令 file 执行文件
查看文件属性。
4,带有wiringPi库的交叉编译
a,正常我们先要交叉编译wiringPi库,编译出的库适合树莓派,这时候交叉编译可执行程序的试试,链接库的格式也是正确的。
b, 通过-I -L来指定

arm-linux-gnueabihf-gcc demo.c -I /home/lx/Desktop/WiringPi/WiringPi/wiringPi -L. -lwiringPi -o hao

arm-linux-gnueabihf-gcc:交叉编译工具链
demo.c:待编译文件
/home/lx/Desktop/WiringPi/WiringPi/wiringPi:头文件在哪里去找(指定到文件目录)
-lwiringPi:告诉编译器去当前路径去查找去找静态库,默认是去lib中寻找。
-I (大写i):如-I 头文件地址(指定到文件夹),./表示在本目录下,后面的路径存放着头文件的地址,第一个寻找头文件的目录。

-L:如 -L ./库文件地址(指定到该库文件名),后面的路径存放着库文件的地址,第一个寻找库文件的目录。'.'代表当前目录。静态库指定文件名,动态库指定文件夹在加上小l指定动态库,动态库路径加入到LD_LIBRARY_PATH环境变量。头文件环境变量C_INCLUDE_PATH,找C 头文件环境变量CPLUS_INCLUDE_PATH,找静态库环境变量LIBRARY_PATH,python的包环境变量 PYTHONPATH

-l (小写L):-l后面跟着的是动态库的名字,会寻找.so动态库文件。

5,生成软连接和硬链接
会用到命令ln
学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgaakka
系列文章
更多 icon
同类精品
更多 icon
继续加载