pkg-config 基本使用

你在 Unix 或 Linux 下开发过软件吗?写完一个程序,编译运行完全正常,在你本机上工作得好好的,你放到源代码管理系统中。然后,告诉你的同事说,你可以取下来用了。这时,你长长的出了一口气,几天的工作没有白费,多么清新的空气啊,你开始飘飘然了。

“Hi,怎么编译不过去?”你还沉浸在那种美妙的感觉之中,双臂充满着力量,似乎没有什么问题能难倒你的。正在此时,那个笨蛋已经冲着你嚷开了。

“不会吧,我这边好好的!”表面上你说得很客气,其实,你心里已经骂开了,真笨,不知道脑子干嘛用的。也许,你想的没错,上次,他犯了一个简单的错误,不是你一去就解决了吗。

他喊三次之后,你不得不放下你手上的工作,刚才那种美妙的感觉已经消失得无影无踪了,要不是你把情绪控制得很好,一肚子气就要撒在他身上了。你走到他的电脑前,键入 make,优雅的按下回车。怎么可能出错呢?你信心十足。然而,屏幕上的结果多少有点让人脸红,该死的,libxxx.so 怎么会让不到呢?

继续阅读

Linux中的configure、pkg-config、pkg_config_path

提到这三个名词我相信搞Linux的人一定不会陌生,重要性不言而喻,下面我就要总结下三者之间的关系。
configure一般都是一个脚本,执行时可以传入必要的参数告知配置项目。一般的开源软件,下载完源代码,解压后都会在解压后目录中找到configure文件,执行./configure文件就会生成Makefile文件,而configure脚本在检查相应环境时会通过pkg-config的工具来检测相应依赖环境。

pkg-config这一工具是用来检索系统中安装库文件的信息。其主要功能如下:
1、检查库的版本号。如果所需要的库的版本不满足要求,它会打印出错误信息
,避免链接错误版本的库文件。
2、获得编译预处理参数,如宏定义,头文件的位置。
3、获得链接参数,如库及依赖的其它库的位置,文件名及其它一些连接参数。
4、自动加入所依赖的其它库的设置。

继续阅读