linux 驱动报错: /home/plg/pwm_test: not found || Accessing a corrupted shared library

运行驱动程序时报错<`>!

在友善之臂mini2440开发板运行简单的pwm驱动程序出现报错!

  1. 问题初现
    #####如标题#####

linux 驱动报错: /home/plg/pwm_test: not found || Accessing a corrupted shared library_第1张图片
2.初步分析

百度发现还是有人遇到过这个问题,初步分析为缺少某个.a(库)文件,只要cp在对应执行环境下的/lib文件下即可解决这个问题。但是…我在ubutun 18.04 上复制出来到开发板上面之后执行时竟然又出现了新的报错!
时候不早了, 先留着吧<`>’

3.解决方案

古人说: 人丑就要对读书
这句话传下来自然是有他自己的道理的哈哈.
今早起床开始看书结果看到一个知识点后发现可能能用这个解决问题!!!

下面来干货了:

<`>编译程序正常用法:

$ arm-linux-gcc    code.c   -o   code

这种编译方法为动态编译,即查找所需库是否加载到内核,若否,则加载,之后直接调用内核中的库进行动态编译,这种方法的
优点:编译结果文件占用内存小(体积小,节省空间),对于内存小的机器能够存取更多文件代码
缺点: 如果目标环境缺少对应的库则会产生执行错误,即不能运行改可执行文件
.
.
.
(以上就是咱们出现问题的原因!)
.
.
.

解决方案

arm-linux-gcc -static code.c -o code

和以上区别 参数-static

代表意义: 使编译为静态编译

.静态编译: 即直接调用对应的库,使库和可执行文件结合,即可执行文件本身包含所需的所有库

优点: 执行可执行文件时不需要其他依赖项,能解决缺少库等问题

缺点: 本身包含所有所需的库,文件体积大,对内存小的机器很不友好

你可能感兴趣的:(mini2440,linux)