CUnit


CUnit交叉编译

我更换到ubuntu12.04上编译CUnit已经编译不过去了,错误原因是:
libtool : X–tag=CC: command not found 编译报错
原因据说是因为在项目目录下生成的libtool脚本中定义了$ECHO变量,但是在脚本文件ltmain.sh中,使用的却是$echo(生成的libtool版本太旧)
可通过以下方法解决:


  1. 直接复制系统自带的libtool到项目目录,应该在/usr/bin目录下,覆盖代码文件目录下的libtool,再执行make

(没装就apt-get install libtool 或者 yum install libtool 安装一下吧)
但是这有个问题,不能用于交叉编译,系统的libtool会使用系统的ld等,而应该使用交叉工具连的ld。


  1. 修改aclocal.m4文件,将上面的LIBTOOL=’$(SHELL) $(top_builddir)/libtool’改成

LIBTOOL=’$(SHELL) /usr/bin/libtool’后重新执行./configure


  1. 将源码目录下libtool脚本中所有的$ECHO替换成$echo. 或者将脚本文件ltmain.sh里的$echo替换成$ECHO,

都一样,重新执行./configure


另一种解决方案
export echo=echo 回车后 make 正常


使用bootstrap而不是configure

没有了上边的libtool的问题,直接修改bootstrap,添加CC就ok了。
CC=/workspace26/i386-env/cross-tools/bin/i686-unknown-linux-gnu-gcc
或者采用–host的形式:
PATH=/workspace26/i386-env/cross-tools/bin/:$PATH LD_LIBRARY_PATH=/workspace26/env-x86-lib
./configure –host=i686-unknown-linux-gnu –enable-shared=no –disable-dependency-tracking