了解C ++库和usr / local

时间:2013-02-15 23:12:01

标签: c++ boost shared-libraries static-libraries

我正在安装一个需要Boost作为先决条件的程序。在我花更多时间敲打本地权限和其他mirky文件之前,我想了解我正在改变的内容。

我理解C ++库的意思是“当我在编程简介中创建银行帐户程序时,我们无法使用堆栈stl”,但我想我对图书馆的工作没有深刻的理解

所以,问题是:
(1)我如何理解,例如,根据像stl?
这样的库来提升 (2)什么是usr / local目录?
    (a)像Boost这样的库对这个目录做了什么?

赞赏任何和所有帮助,或指向相关文献的指示。++

1 个答案:

答案 0 :(得分:3)

一般信息(适用于所有平台)

C ++中的库包含两种类型的文件:

  1. 标头文件。这些是您#include的内容,并包含库的接口。这些是*.h*.hpp文件,但它们可以有任何扩展名(根本不包含扩展名)。编译器需要这些文件才能知道库的接口。

  2. 目标文件(可选)。这些可能包含实现库的代码。这些是从*.cpp*.cxx文件创建的。 (同样,文件扩展名可以是任何内容。)链接器需要这些文件才能将已编译的库代码加载到程序中,或者为了告诉加载器编译代码的位置。

  3. 特定于Unix的信息(在Linux上为true,在OS X上大多为真,在Windows上为不同)

    标题文件通常位于/usr/include/usr/local/include中。您可以将它们放在任何地方,但编译器会自动搜索这些地方。

    图书馆对象文件通常位于/lib/usr/lib/usr/local/lib中。您可以将它们放在任何位置,但链接器和加载器将自动搜索这些位置。

    它们之间的区别是:

    • /lib适用于您的系统需要启动的功能。

    • /usr/include/usr/lib适用于软件包管理器安装的软件。

    • /usr/local/include/usr/local/lib适用于系统管理员(例如您)安装的软件。

    • 请记住:您可以选择在任何地方安装库,您只需要记住告诉编译器和链接器在哪里找到它们。