转发请注明出处:http://blog.csdn.net/kelvin460022272
交叉编译工具版本:gcc version 4.5.1 (ctng-1.8.1-FA)
编译目标文件:liquid-dsp-1.2.0
目标板子: tiny 4412
编译步骤:
1. 使用configure生成makefile文件 ./configure CC=arm-linux-gcc --host=arm-linux
2. 修改config.h,不知道为什么configure会检测不到malloc ,realloc函数。并且重新把malloc定义为rpl_malloc,realloc定义为rpl_realloc。
这连个函数在我的系统里面都没有,导致后面编出来的库会找不到这两个函数运行的时候就出错了。malloc和realloc在标准库里面就有了,既然
自动检测不到,那我就手动修改好了。 把HAVE_MALLOC和HAVE_REALLOC都改为1, 把定义去掉。
3. 使用make开始编译。
编译到一半就出现错误了:
其实这个错误很好理解,就是想用一个编译出来的程序去生成一个.c文件。因为我们生成的程序是arm指令的,在PC上肯定跑不了了。我试了一下用
gcc去编译这个程序并在PC上跑,发现这个.c程序就是一个数组。想了想,这个数组可能跟CPU有关系的,还是把程序方到板子上跑,然后生成文件
再拷回来。
文件拷过来后继续编译,才编译了一下又出现错误了。
这是编译器错误啊,上网找了一下,没找到解决方法,但知道了这个错误是在解析语法的时候出现问题了。那就先看看源码,为什么会有语法错误了。
看起来使用的变量比较多。那我就尝试简化一下这些变量。竟然可以解决这个问题了。修改方法如下:
继续编译又出现错误了。不过这个错误跟上面生成.c文件的错误是一样的。
解决完这个错误之后终于大功告成,编译成功了。