第三方库交叉编译

一、使用autoconf方式

  gnu下载的库一般都使用autoconf方式编译,通常都是

  ./configure --prefix=/home/yy/lib --host=aarch64-linux-gnu

  make 

  make install

  如果没有configure文件通常先运行一下autogen.sh(有可能时其它名称)来生成configure文件

1.1 添加外部依赖库

  添加外部依赖库通常用两种方法,一种是用pkg-config方式,如果依赖库支持这种方式,一般库的lib目录下有一个pkgconfig文件夹,里面有.pc文件。

  使用pkg-confg方式添加依赖库需要设置一下pkg-config的环境变量PKG_CONFIG_PATH即可,pkg-config会到该环境变量指定的目录中去找.pc文件。

  export PKG_CONFIG_PATH=/home/yy/dbus-install/lib/pkgconfig

  如何有多个依赖库,则用冒号隔开

  export PKG_CONFIG_PATH=/home/yy/dbus-install/lib/pkgconfig:/home/yy/readline-install/lib/pkgconfig

  第二中方法是可以直接设置CFLAGS、LDFLAGS等环境变量,可以用.configure --help 命令看一下支持哪些环境变量设置

  可能出现的问题:

  用pkg-config方式设置的依赖库在checking 依赖库的时候仍然说库没找到,如

  

  libudev和libical依赖库都能checking成功,但是readline 找不到。这时候看一下configure.ac中关于这些库的checking方式是怎么样的。readline使用AC_CHECK_HEADERS方式检查头文件,而libcal是用PKG_CHECK_MODULES方式。

  这时候用pkg-config 方式添加的readline没法用AC_CHECK_HEADERS方式检查到,AC_CHECK_HEADERS会到CFLAGS环境变量指定的-I中去查找头文件,需要export CFLAGS=-I/home/yy/readline-install/include

 

  

posted @   YYFaGe  阅读(6)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示