我正在安装一个需要Boost作为先决条件的程序。在我花更多时间敲打本地权限和其他mirky文件之前,我想了解我正在改变的内容。
我理解C ++库的意思是“当我在编程简介中创建银行帐户程序时,我们无法使用堆栈stl”,但我想我对图书馆的工作没有深刻的理解
所以,问题是:
(1)我如何理解,例如,根据像stl?
这样的库来提升
(2)什么是usr / local目录?
(a)像Boost这样的库对这个目录做了什么?
赞赏任何和所有帮助,或指向相关文献的指示。++
答案 0 :(得分:3)
C ++中的库包含两种类型的文件:
标头文件。这些是您#include
的内容,并包含库的接口。这些是*.h
或*.hpp
文件,但它们可以有任何扩展名(根本不包含扩展名)。编译器需要这些文件才能知道库的接口。
目标文件(可选)。这些可能包含实现库的代码。这些是从*.cpp
或*.cxx
文件创建的。 (同样,文件扩展名可以是任何内容。)链接器需要这些文件才能将已编译的库代码加载到程序中,或者为了告诉加载器编译代码的位置。
标题文件通常位于/usr/include
和/usr/local/include
中。您可以将它们放在任何地方,但编译器会自动搜索这些地方。
图书馆对象文件通常位于/lib
,/usr/lib
和/usr/local/lib
中。您可以将它们放在任何位置,但链接器和加载器将自动搜索这些位置。
它们之间的区别是:
/lib
适用于您的系统需要启动的功能。
/usr/include
和/usr/lib
适用于软件包管理器安装的软件。
/usr/local/include
和/usr/local/lib
适用于系统管理员(例如您)安装的软件。
请记住:您可以选择在任何地方安装库,您只需要记住告诉编译器和链接器在哪里找到它们。