PKG_CONFIG_PATH 的使用
来源:互联网 发布:淘宝详情页图片超链接 编辑:程序博客网 时间:2024/05/16 06:26
在Fedora 14安装软件的时候遇到一个奇怪的问题。
所要安装的软件依赖glib库 2.20。 而系统自带的是2.18不满足条件。于是我安装了一个glib-2.25。但是安装完成之后查询库的版本依然是2.18.
这样就要提几个问题:
1. 系统是如何知道库的版本的?
一般来说,一个库在安装的过程中(如果是自编译的在configure阶段)会生成一个.pc文件,里面包含了库的相关信息
下面是vte库生成的.pc文件中的内容。其版本为0.27.2. 系统就是通过解析这个文件的内容来获取库的信息的。(系统并不是完全详细里面的内容,如果.pc文件里的版本信息,和实际的库不一致,系统会提示)
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
defaultemulation=xterm
Name: vte
Description: Vte terminal widget.
Version: 0.27.2
Requires: glib-2.0 >= 2.22.0 gobject-2.0 pango >= 1.22.0 gtk+-2.0 >= 2.20.0 gobject-2.0 gio-2.0 gio-unix-2.0 x11 cairo-xlib
Libs: -L${libdir} -lvte
Cflags: -I${includedir}/vte-0.0
2.这个文件在什么地方。
这个文件在安装库的时候会自动被拷贝到pkgconfig文件夹下。
对于系统默认安装的库路径为:/usr/lib/pkgconfig
对于用户自安装的库路径为:/usr/local/lib/pkgconfig
3.为什么系统看不到新版本的库?
系统默认情况下会到/usr/lib/pkgconfig中去查找库的信息。对于/usr/local/lib/pkgconfig是无视的。
这个时候就要设置环境变量PKG_CONFIG_PATH。这样系统会优先到PKG_CONFIG_PATH中列的路径中去搜索库的信息文件。
对于文章前面描述的问题只要将PKG_CONFIG_PATH设置为/usr/local/lib/pkgconfig 就可以解决问题了。
PS: 此外,还有一个环境变量LD_LIBRARY_PATH要相应设置为/usr/local/lib否则系统会发现.pc文件描述的内容与时间的库信息不一致而报错。
- PKG_CONFIG_PATH 的使用
- PKG_CONFIG_PATH的设置
- PKG_CONFIG_PATH
- PKG_CONFIG_PATH
- PKG_CONFIG_PATH和PKG_CONFIG的路径设置问题
- PKG_CONFIG_PATH和PKG_CONFIG的路径设置问题
- PKG_CONFIG_PATH和PKG_CONFIG的路径设置问题
- 简述configure、pkg-config、pkg_config_path三者的关系
- 简述configure、pkg-config、pkg_config_path三者的关系
- configure、pkg-config、pkg_config_path三者的关系
- 简述configure、pkg-config、pkg_config_path三者的关系
- 安装过程中出现PKG_CONFIG_PATH的问题解决方法
- 简述configure、pkg-config、pkg_config_path三者的关系
- 简述configure、pkg-config、pkg_config_path三者的关系
- 简述configure、pkg-config、pkg_config_path三者的关系
- 简述configure、pkg-config、pkg_config_path三者的关系
- 简述configure、pkg-config、pkg_config_path三者的关系
- 简述configure、pkg-config、pkg_config_path三者的关系
- 堆和栈的区别 5
- C#继承与构造函数的调用
- Java web开发详解读书笔记-第八章数据库访问
- C#中构造函数不是不能被继承吗?为什么以下的构造函数先执行?
- Introduction to XML and XML With Java
- PKG_CONFIG_PATH 的使用
- 默认构造函数的作用(“A”方法没有采用“0”个参数的重载。)
- 22+1条经典的编程引言
- asp.net 将EXCEL表格数据导入到SQL Server数据库
- C#继承中访问修饰符的区别
- 积极学习辩证唯物主义的立场和方法
- C#设置访问权限
- java编码转换的详细过程
- java编码转换的详细过程