zoukankan      html  css  js  c++  java
  • 简述configure、pkg-config、pkg_config_path三者的关系

    一、什么是configure

    源码安装过程中大多会用到configure这个程序,一般的configure都是一个script,执行时传入必要的参数告知配置项目。

    configure程序它会根据传入的配置项目检查程序编译时所以来的环境以及对程序编译安装进行配置,最终生成编译所需的Makefile文件供程序Make读入使用,进而调用相关编译程式(通常调用编译程序都是gcc)来编译最终的二进制程序。而configure脚本在检查相应依赖环境时(例如:所以来软件的版本、相应库版本等),通常会通过pkg-config的工具来检测相应依赖环境。

    二、什么是pkg-config

    1、pkg-config介绍

    pkg-config用来检索系统中安装库文件的信息。典型的是用作库的编译和链接。

    2、pkg-config的功能

    一般来说,如果库的头文件不再/usr/include目录中,那么在编译的时候需要用-l参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径不同,造成来用-l参数指定的头文件的路径时可能不同,其结果就是造成了编译命令界面的不统一。可能由于编译,链接的不一致,造成同一份程序从一台机器copy到另一台机器时就可能会出现问题。

    pkg-config就是用来解决觉编译链接界面不统一问题的一个工具。

    它的基本思想:pkg-config是通过库提供的一个.pc文件获得库的各种必要信息的,包括版本信息、编译和链接需要的参数等。需要的时候可以通过pkg-config提供的参数(-cflags, -libs),将所需信息提取出来供编译和链接使用。这样,不管库文件安装在哪,通过库对应的.pc文件就可以准确定位,可以使用相同的编译和链接命令,使得编译和链接将诶面统一。

    3、环境变量PKG_CONFIG_PATH

    环境变量PKG_CONFIG_PATH是用来设置.pc文件的搜索路径的,pkg-config按照设置路径的先后顺序进行搜索,直到找到指定的.pc文件为止。这样,库的头文件的搜索路径的设置实际上就变成了对.pc文件搜索路径的设置。

  • 相关阅读:
    课后作业一
    软工假期预习作业
    Spark2.0自定义累加器
    JAVA hashmap知识整理
    Spark 累加器
    RDD与DataFrame的转换
    Scala笔记整理
    Spark RDD
    Hbase的flush机制
    Spring源码-ImportSelector实现分析
  • 原文地址:https://www.cnblogs.com/zhibei/p/12981070.html
Copyright © 2011-2022 走看看