背景: 项目代码基于SVN管理,存放于一台CentOS服务器上。项目硬件平台为arm,从u-boot、kernel、busybox、底层驱动接口到app,整个项目通过Makefile进行编译生成目标镜像。在搭建编译环境的时候遇到一些问题,在此做一记录。
一、关于Linux和Windows系统
最初我是通过windows上的svn工具直接将项目导入到本地,再通过ftp上传到虚拟机中(CentOS6),在虚拟机中进行编译,期间出现了一下问题:
- 编译内核时,在net/ipv4/netfilter/目录下的编译会出现依赖关系错误:找不到依赖的文件。这是因为在Windows系统中,文件名不区分大小写,而linux系统中是大小写敏感的。在net/ipv4/netfilter/目录下,有很多同名但大小写不同的文件,这在Windows上会造成文件相互覆盖。如下图:
- Windows是不支持软连接这种文件结构的,所以在Linux中的软连接在windows下可能表现为一个普通文件,其内容为:
link:../dir1/dir2/somefile
还有一些权限等问题,最后的结果当然是编译错误。所以以后碰到Linux项目,一定不要让项目文件直接暴露到非Linux文件系统上,可以先打包文件,再传输。