常见 出错问题解决

遇见棘手问题:

如: 在 llvm34 version up 时, 需要修改td文件,大量修改。

尽可能先 跳过。(这也是在领导督促下,为了尽快解决问题实行的方法。可以极大搞清进度)。等解决完其他问题之后,再集中精力解决难题。 

 

移植时候,修改代码 需要 注意牵一发而动全身: 不能只管修改一处,应是,其他涉及的地方都要一起改了,否则,即使当时编译通过了,可是隐藏的问题发现不了。通常可能导致段错误等等“难题”,通常是由于修改不全问题导致。

 

 

======================================================================

 

 

交叉编译clang,20bit 溢出问题:

关于 switch case

代码 的修改, 把case里面的代码 写成函数形式,可以减少代码跳转的代码条数。

就可以解决了。

 

 --------------------------------------------------------------------------

汇编器

汇编器(Assembler)是将 汇编语言翻译为 机器语言的程序。一般而言,汇编生成的是 目标代码,需要经 链接器(Linker)生成 可执行代码才可以执行。

 --------------------------------------------------------------------------

 

 编译 链接时 出错 undefined reference to `xxx' :

找原因可以通过 执行 cc  xx.c  -v .

 

----------------------------------------------------------

/tmp/ccY0orU6.s:55241: Error: displacement overflows 20-bit field.

去掉编译选项 -fPIC 可能会解决,至少会减少错误数。

在llvm_root/ Makefile.rule 中搜索 -fPIC并注掉,即可。

或者  查找 ENABLE_PIC。

---------------------------------------------------------

#include_next",表示包含文件名为该名字的下一个头文件。这条语句使编译器到其它目录中搜索该头文件。

 假设有 A B C D四个搜索路径。

在B路径下的一个头文件里面有 #include_next <xxx>

那么只会去C D里搜索 xxx 。

A B里面的头文件会被忽略掉。 如果 CD里没有 xxx ,则会报错。

-------------------------------------------------------------------------------------------------------------------------------------------------

 

ld: cannot find -lxxx

如果路径指定了,名字也对。那么肯定是库的格式不对。 即 经常把x86的库当作arm等的库来使,会被跳过忽略 ld: skipping incompatible xxx,当然报错找不到了。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值