嵌入式开发,有些时候需要用到开源的库。为了能在嵌入式系统上面调用这些库,就需要交叉编译库。通常来说,最靠谱、也最推荐的方法就是去到你所需要库的官方网站或者下载的库文件里面,肯定会有相关的document,教大家如何编译和使用这些库文件。
linux下编译这些库文件,通常是以下三个步骤:./configure,make,make install。1、configure,这一步一般用来生成
Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。./configure –help 察看详细的说明帮助。2、make,这一步就是编译,大多数的源代码包都经过这一步进行编译。3、make
insatll,这条命令来进行安装,这一步有时候需要你有 root 权限(因为要向系统写入文件)。
对于交叉编译,有那么几点需要注意的:1、./configure通常会有一个参数--host,需要在这里设置好交叉编译工具,--prefix是用来设置安装目录。2、有时候,编译的库需要依赖于其他库,此时,需要修改Makefile文件,在里面合适的位置添加:LDFLAGS和CFLAGS,例如:LDFLAGS="-L$PREFIX/lib"
CFLAGS="-g -I$PREFIX/include" 3、make install之后生成的头文件和库文件,需要复制到交叉编译工具对应的位置(如果在./configure中,使用了--prefix就不需要这一步),生成的动态库(*so*)需要复制到根文件系统上面。