s3c6410交叉编译gtk小结

最近一段时间,一直在做s3c6410交叉编译工作。主要交叉编译的模块是gtk包。经历了一遍的build.sh以后,基本上得到了这些动态库文件。总结一下这个交叉编译过程,以便为以后工作作为参考。

排错过程:

1.首先要观察交叉编译后的错误信息,看是发生在configure时,还是发生在make时。

2.根据错误发生的时间,来进行排错(无论是在configure后还是Makefile后发生的错误都好解决,不好解决的是在make过程中生成的文件错误,很难解决)。configure时的错误,要打开configure文件,复制错误信息,进行查找,找到相应位置,分析错误原因。

3.如果还不能找到错误,那使用重定向命令,将过程定位到文件中,仔细查找错误信息。

 

主要错误情况:

1.一些文件缺少必要的头文件。比如pthread,stdlib,nsetenv,X11等等.

2.configure文件中的一些选项会有退出情况,该情况下,可以屏蔽退出操作,让程序继续运行下去。

3.可以屏蔽一些源码包,因为我们要得到的是动态或者静态库文件,但大多数的源码包中都存在一些demo或者test的测试代码。这些代码需要进行连接操作,在进行交叉编译的过程中,可以对这些源码包进行屏蔽,当然在Makefile.am中进行屏蔽了。

4.可以修改一些PATH环境变量,因为有时候会提示不能执行二进制文件。该情况通常是需要arm平台下生成的二进制可执行文件才可真正执行。所以这种情况我们可以采用从arm平台的生成的文件替代。或者也可以采用直接使用pc的/usr/bin下的同名的文件进行代替。

5.对于上面2中提到的在Make过程中生成的文件错误,可以通过多次进行编译的过程实现。原理是makefile的时间戳。

 

 

 

你可能感兴趣的:(s3c6410交叉编译gtk小结)