|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
网上大众的作法这里不做介绍
0 d3 e( E7 |5 b7 R% y& q; s" l2 b( v5 z" {
5 w- x7 V2 m" i: q
在编译一些库的时候可能某些工具会用到宿主机的,而这些工具在调用的时候会找和宿主机匹配的库,而交叉编译的库是不能用的,0 k& v$ [# F7 E) G6 A, a
" x& a! j) v' p: [! y; i* w! e9 m
; q- Q/ u/ y k" `遇见这种情况基本是解决不了的,但是可以通过configure 的选项去掉这些过程,举个例子:( r' s& d4 [$ N+ L! b
" Y% @4 [ B5 o7 n+ \$ n
, G' z: x7 D( t4 W我在编译 udev 的时候 用到 g-ir-scanner 这个脚本,之后就提示找不到 libudev,libffi,libz,而这些在我的环境变量里面是包含了的9 t: c$ C% ^% Q+ z
4 H" [+ O1 {% i6 f4 g! ]7 t2 g3 {
! p0 s1 a9 _ F+ d查看 configure --help 之后 把--disable-introspection 加上,就可以跳过这一步,顺利通过。- W0 v+ ?2 C1 e! c2 ?5 h! b, @
, L6 J* S( _; R8 e9 ]
1 v( \ h& b y2 @这种问题在configure阶段可以加在 -l 选项中,如果configure过了,说明可以找到这些库,make没有通过,基本就是某个工具环境的问题了。3 |, C9 H- S* x- ^7 P
0 |8 x, `5 t( }# }: z
' R: s' s/ w' P3 f4 ^另外有时候会提示某个文件不能执行,这些可执行文件就很可能是在make阶段生成的(100%),而交叉编译生成的在宿主机上面肯定是不能运行的,8 S* F/ ~6 n5 n0 }( O" t
' d4 ?- h% f6 y3 D* K( \" [( L7 S! P% E/ ^) M4 c
可以用file命令查看文件属性,这个问题可以先在宿主机make一遍,然后把生成的可执行文件直接拷贝到交叉编译的环境下,不要make clean,否则会自动删除。
2 m* s6 D4 P0 W! s& M8 X) j. n/ ?* F# }) k) M
7 n' ]' r0 R4 `" |. B
/ @6 g+ P0 [- g$ H6 R# S6 J, x1 l) ^
8 Z2 |) G6 |$ s$ X1 B8 P
* Z8 L- v A5 {% O' r! w3 Q1 F3 z# n* I
2 s z+ A$ o" P3 A7 z: O# ?8 b( ?' `$ B4 B- a
|
|