-1

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

我从“当我在 Intro to Programming 中创建银行账户程序时,我们无法使用堆栈 stl”的意义上理解 C++ 库,但我想我对这些库的作用并没有深入了解。

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

任何和所有帮助,或相关文献的指针都表示赞赏.c++

4

1 回答 1

3

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

C++ 中的库由两种类型的文件组成:

  1. 头文件。这些是你的东西#include,并包含库的接口。这些是*.hor*.hpp文件,尽管它们可以有任何扩展名(包括根本没有扩展名)。编译器需要这些文件才能知道库的接口。

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

Unix 特定信息(在 Linux 上为真,在 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适用于系统管理员(例如您)安装的软件。

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

于 2013-02-15T23:30:21.300 回答