linux与树莓派交叉编译

arm-linux-gnueabihf-gcc -v编译适合在树莓派上运行的可执行文件

scp     xxx.c        pi@ip地址              :   /home/pi

指令  文件名  开发板用户名@ip地址: 开发板绝度路径    password:输入开发板密码      同理从树莓派给linux传文件也一样

 

grep gcc * -nir  查找包含gcc

history | grep 2.c   在历史中查找关于2.c的指令

 

带wiringPi库的交叉编译 

找到库位置

 arm-linux-gnueabihf-gcc 1.c -I /home/wang/lessonPI/WiringPi/wiringPi

  在linux里面编译通过-I(大写i) 加路径  交叉编译

出现问题 说明链接的库有问题 无法编译出适合在树莓派中的执行文件  所以需要修改库  从树莓派的库里面找到发送过来  

我们需要的是libwiringPi.so.2.50    但是通过查看  发现这个是libwiringPi.so的链接

先尝试直接发送库过去

发现还是不行无法直接用链接后的库

Linux创建连接命令 ln -s创建软连接

1.类似于windows里的快捷方式

2.在符号连接中,文件实际上是一个文本文件,其中包含有另一个文件的位置信息

ln -s 它的功能是为某一个文件在另外一个位置建立一个同步的链接,这个命令最常用的参数是-s,
具体用法是:ln -s 源文件 目标文件。
当 我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下
用ln命令链接
例如:ln -s    /bin/less                      /usr/local/bin/less

                  要被链接的文件              软链接文件名字
这 里有两点要注意:第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;第二,ln的链接又软链接 和硬链接
两种,

软链接  ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,

硬链接   ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件

无论是软链接还是硬链接,文件都保持同步变化。

 

建立软链接 创建成功

这个时候就可以调库了 生成可以在树莓派上执行的文件 发送给树莓派就可以了

-l参数就是用来指定程序要链接的库加路径,-l参数紧接着就是库名也加路径 (这里库就在这个目录所以不必加路径),那么库名跟真正的库文件名有什么关系呢?就拿数学库来说,他的库名是m,他的库文件名是libm.so,很容易看出,把库文件名的头lib和尾.so去掉就是库名了      下面三个例子实在不同的路径

1. -I 链接的库的路径  -L.   当前路径

2.改变路径 但是库要加上路径

    树莓派上运行结果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值