首页 > 代码库 > 编译过程的一点心得

编译过程的一点心得

最近在交叉编译一个程序,因为使用的交叉编译器的版本比较低,然后交叉编译环境中还缺少一些依赖库,所以整个过程出现了不少问题。体会如下:

1. 缺少头文件不一定意味着缺少.so库文件。

由于编译环境有许多包没有安装,难免在编译阶段会提示缺少头文件,这时候并不意味着缺少的是一个软件包,先把头文件给弄上,交叉编译环境可以从主机中取头文件。至于是否需要库文件,看看链接阶段是否报错吧。

 

2. 必要时可以砍掉一些功能。

(1)编译阶段报错了,错误的位置是一个函数的定义,发现该函数没有referenced,注释掉就行了。

(2)configure阶段出错了,原因是缺少某个包,若无法肯定在最终的程序中该包是必须的,那就看看是否可以向configure传递相关参数,将该功能给disable掉。

(3) 一些无关紧要的用于显示警告之类的信息的,但是使用了编译器不理解的语法,这属于无关紧要的功能,注释掉好了。

 

3. 编译器不理解相关语法导致的错误。

发挥你的才智,使用各种丑陋的方式,反正你最终的目的是让程序编译通过,优化什么的那是后话。

 

4. 记起来再写。。。

 

编译过程的一点心得