说明:由于libgcrypt库依赖于libgpg-error,所以需要先构建libgpg-error库。
1. 源码下载
到 ftp://ftp.gnupg.org/gcrypt/ 下载libgcryp.tar.gz和libgpg-error.tar.gz源码包(我下载的版本为libgcrypt-1.7.8.tar.gz和libgpg-error-1.27.tar.gz)。2. 构建libgpg-error
2.1 解压
解压libgpg-error.tar.gz到/home/warmbobo/mylibs/libgpg-error-1.27,并进入该目录:# cd /home/warmbobo/mylibs/libgpg-error-1.27
2.2 配置
(1)添加交叉工具环境#export PATH=$PATH:/home/warmbobo/toolschain/gcc-linaro-x86_64_aarch64-linux-gnu/bin/
(2)配置编译选项#./configure --host=aarch64-linux-gnu --prefix=/home/warmbobo/mylibs/install/libgpg-error-1.27
2.3 编译安装
#make
#make install
上述步骤完成后会将生成的文件安装到/home/warmbobo/mylibs/install/libgpg-error-1.27目录下。这些文件安装完成后不要轻易移动里面文件或者目录位置,后面libgcrypt会依赖这些路径。3. 构建libgcrypt
3.1 解压
解压libgcrypt-1.7.8.tar.gz到/home/warmbobo/mylibs/libgcrypt-1.7.8,并进入该目录:
#cd /home/warmbobo/mylibs/libgcrypt-1.7.8
3.2 配置
(1)添加交叉工具环境
#export PATH=$PATH:/home/warmbobo/toolschain/gcc-linaro-x86_64_aarch64-linux-gnu/bin/
(2)配置编译选项
#./configure GPG_ERROR_CONFIG=/home/warmbobo/mylibs/install/libgpg-error-1.27/bin/gpg-error-config --host=aarch64-linux-gnu --prefix/home/warmbobo/mylibs/install/libgcrypt-1.7.8 --disable-asm
解释一下一些参数的含义:
GPG_ERROR_CONFIG:该选项指定gpg-error-config工具路径,默认为/usr/bin/gpg-error-config。configure可通过gpg-error-config工具可以找到依赖的libgpg-error库路径(./gpg-error-config --libs 会指出我们之前安装的libgpg-error库的绝对路径)。
--disable-asm:该选项表示不使用汇编模块。在有些机器上需要使能,有的机器不需要。如果链接时候出现找不到“_gcry_mpih_lshift”这类符号的提示,可以尝试使用这个标志。同时,还可以参考libgcrypt-1.7.8/README中的“Build Problems”这一段。
3.3 编译安装
#make
#make install
上述步骤完成后会将生成的文件安装到/home/warmbobo/mylibs/install/libgcrypt-1.7.8目录下,其中库文件在libgcrypt-1.7.8/lib目录下。