【问题标题】:Understanding C++ Libraries and usr/local [closed]了解 C++ 库和 usr/local [关闭]
【发布时间】:2013-02-15 23:12:01
【问题描述】:

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

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

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

感谢任何和所有帮助,或相关文献的指针。c++

【问题讨论】:

  • 抱歉,我会更新我的问题以使其更具体。
  • usr/local 与 Boost 库有什么关系?你在寻找什么样的文学作品?
  • 你能把你的问题 1 说得更具体一些吗?
  • 我不确定;这就是我想要了解的:两者是什么,以及它们之间的关系。
  • 您不必弄乱安装 Boost 的权限。 (1) 首先,试试你的包管理器:Yum、Aptitude、Synaptic、Portage、Pacman。正确的取决于您的系统。 (2) 其次,下载 Boost 并按照安装说明进行操作。说明应该很短,并且不需要您更改权限(尽管您需要 root 访问权限)。

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


【解决方案1】:

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

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

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

  2. 对象文件(可选)。这些可能包含实现库的代码。这些是从*.cpp*.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 用于系统管理员(例如您)安装的软件。

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

【讨论】:

  • 谢谢。这当然有帮助。我想我需要弄清楚我的机器出了什么问题。
猜你喜欢
  • 2011-10-29
  • 2015-12-23
  • 2013-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多