linux 交叉编译找不到库文件

 

网上大众的作法这里不做介绍

在编译一些库的时候可能某些工具会用到宿主机的,而这些工具在调用的时候会找和宿主机匹配的库,而交叉编译的库是不能用的,

遇见这种情况基本是解决不了的,但是可以通过configure 的选项去掉这些过程,举个例子:

我在编译 udev 的时候 用到 g-ir-scanner 这个脚本,之后就提示找不到 libudev,libffi,libz,而这些在我的环境变量里面是包含了的

查看 configure --help 之后 把--disable-introspection 加上,就可以跳过这一步,顺利通过。

 

这种问题在configure阶段可以加在 -l 选项中,如果configure过了,说明可以找到这些库,make没有通过,基本就是某个工具环境的问题了。

另外有时候会提示某个文件不能执行,这些可执行文件就很可能是在make阶段生成的(100%),而交叉编译生成的在宿主机上面肯定是不能运行的,

可以用file命令查看文件属性,这个问题可以先在宿主机make一遍,然后把生成的可执行文件直接拷贝到交叉编译的环境下,不要make clean,否则会自动删除。

你可能感兴趣的:(linux学习记录)