LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 612|回复: 3

clfs完成后,在目标机上编译程序,居然还会去/mnt/clfs/cross-tools/arm-xxxxxxx/lib下

[复制链接]
发表于 2010-7-19 22:16:12 | 显示全部楼层 |阅读模式
根据sysroot做的,完成后,在目标机上试编译libsigc++2.2
make 时出错,提示
grep: /mnt/clfs/cross-tools/arm-s3c6410-linux-gnu/lib/libstdc++.la: No such file or directory
/bin/sed: can't read /mnt/clfs/cross-tools/arm-s3c6410-linux-gnu/lib/libstdc++.la: No such file or directory
libtool: link: `/mnt/clfs/cross-tools/arm-s3c6410-linux-gnu/lib/libstdc++.la' is not a valid libtool archiv
居然会去到cross-tools下找库文件。是在哪里指定的呢?这个文件分明是在/usr/lib下。修改/etc/ld.so.conf加入/usr/lib,还是一样。我只好临时建立了目录,复制了个文件进去,通过了编译,但这样心里总是不舒服。难道这个路径已经写进了gcc内部?
发表于 2010-7-20 13:22:48 | 显示全部楼层
呵呵,明显工具链有问题。
touch dummy.c
gcc -v -Wl,--verbose dummy.c
仔细看看头文件,库搜索路径。

请老老实实从头做,特别注意路径部分。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-20 19:47:45 | 显示全部楼层
这样倒是正常,试图在/usr/lib/gcc/arm-s3c6410-linux-gnu/4.4.1/下找,没有出现cross-tools
奇怪,编译其它软件没发生这种情况,单libsigc++出现
回复 支持 反对

使用道具 举报

发表于 2010-7-20 20:17:20 | 显示全部楼层
如果能排除 工具链 问题,查 libtool。
查 libsigc++2.2 使用系统 libtool 还是其源码自包含 libtool,看看是怎么把路径加进去的。

http://www.gentoo.org/doc/en/gcc-upgrading.xml 有 libtool 相关问题。
但其是升级 gcc,CLFS-sysroot 不涉及 gcc 升级。
如果你 交叉编译器 gcc 版本 与 交叉编译的 gcc 版本不一致,那是自找麻烦。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表