Linux libxml2源码编译教程
下载源码
- 进入libxml2官网,下载源码包
- 解压源码
unzip ./libxml2-master.zip
编译源码
-
运行自动编译脚本
sudo ./autogen.sh
- 如果缺少软件依赖,会提示你需要安装的依赖,对照报错信息安装即可。
-
运行make指令编译源码
sudo make
-
安装libxml2相关库和头文件
sudo make install
- 头文件默认安装在
/usr/local/include/libxml2/
下 - 库文件默认安装在
/usr/local/lib/
下
- 头文件默认安装在
配置环境
由于我们在源码中使用的是<libxml/*.h>,因此需要手动配置一下环境变量。如果不配置环境变量直接编译会出现如下错误:
提示我们找不到对应的文件。
-
分别查看
LIBARAY_PATH
,LD_LIBARAY_PATH
,C_INCLUDE_PATH
,三个环境是否被配置(为空)echo $LIBARAY_PATH echo $LD_LIBARAY_PATH echo $C_INCLUDE_PATH
- LIBARAY_PATH用于在程序编译期间查找动态链接库时指定查找共享库的路径
- LD_LIBARAY_PATH环境变量用于在程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
- C_INCLUDE_PATHGCC编译时查找include时使用的路径,指定之后GCC在编译时会去此路径查找对应的include信息
- 更多信息可以参考此文章
-
如果环境变量为空,则应直接赋值,若不为空,则应该在原有变量上继承:
- 从截图中看到,我的三个环境变量均未被配置,因此我直接赋值修改
/etc/profile
文件:
如果此时使用继承原有变量再赋值的方式,此环境变量不会生效,具体原因参考此文章 - 如果有变量被赋值,则需要使用继承方式修改
/etc/profile
文件:
- 从截图中看到,我的三个环境变量均未被配置,因此我直接赋值修改
环境变量配置完成
编译例程
以*/libxml2-master/example/xpath1.c
为例,测试源码编译是否可行
- 键入
gcc -Wall -g ./xpath1.c -o ./xpath1 -lxml2
可以看到编译成功。- 这个
-lxml2
是指定链接库,如果不指定会报错
- 这个
- 测试是否正常运行
正常运行
至此Linux libxml2源码编译结束。下面可以进行本地开发验证。