编译问题

来源:互联网 发布:手机淘宝淘口令在哪里 编辑:程序博客网 时间:2024/05/18 18:01

最近在调试HTTPS的过程中遇到一些编译错误,这里整理记录一下。

1.  relocation truncated to fit : R_MIPS_16 against / unreference declaration of XXX 

初步判断是有类型未声明或者定义。按照提示寻找XXX 找到以后发现, XXX的定义和声明都是存在的。

然后就否定了这个想法,开始怀疑编译器的问题,在网上查发现和我的情况都不一样,又重新看了一遍,

虽然XXX的声明的文件被编译了,但是定义的文件并未被编译。先排查被宏定义包住的情况,排除,定位发现

是XXX的源文件所在的路径下的文件都没有被编译, 但是上一级的makefile已经定义了

LOCAL_MODULE_DEPENDS := \

                                                      ../../../XXX \

然后就查看别的文件,发现都是这样写的都可以编译,为啥它不行呢?抱着试试看的心态在更上一级的makefile中添加了编译依赖项,然后PASS了,理论上暂时还是不是很清楚为什么要在更上一级添加倚赖,有待学习。

2. expected '=', '.' ':' , 'asm' or '_attribute_' before 'typedef'

开始怀疑是类定义的问题,搜索提示出错的类,按照stack一层一层找,未发现语法错误,grep 这个类发现很多地方都引用了,都没有报错,但是在这里报错了,又按照提示看,发现某个C文件里多了一个字母,然后编译的时候没报这个字母的错,报的是上述错误。

编译器本身的定位能力还是有限的,要从提示处仔细往上排查才能找到错误,有时候比较匪夷所思的错误往往最后发现都是一个低级错误引起的,编译器并未定位到这里,而且自己又找偏了。



0 0
原创粉丝点击