了解C++库和usr/local
Understanding C++ Libraries and usr/local
我正在安装一个需要Boost作为先决条件的程序。在我花更多时间研究本地权限和其他有趣的文件之前,我想了解我正在修改什么。
我理解C++库的意义是"当我在编程入门中创建一个银行账户程序时,我们不能使用堆栈stl",但我想我对库的功能没有深入的了解。
因此,问题是:
(1) 我如何理解,例如,根据向量stl等库的Boost
(2) 什么是usr/local目录
(a) 像Boost这样的库对这个目录做了什么?
任何和所有的帮助,或指向相关文献的指针都将不胜感激。c++
常规信息(适用于所有平台)
C++中的库由两种类型的文件组成:
-
头文件。这些内容是
#include
,并包含库的接口。这些是*.h
或*.hpp
文件,尽管它们可以有任何扩展名(包括完全没有扩展名)。编译器需要这些文件才能知道库的接口。 -
对象文件(可选)。这些可能包含实现库的代码。这些是根据
*.cpp
或*.cxx
文件创建的。(同样,文件扩展名可以是任何东西。)链接器需要这些文件,以便将编译后的库代码加载到程序中,或者告诉加载程序编译后的代码在哪里。
Unix特定信息(在Linux上为真,在OS X上大多为真,而在Windows上则不同)
头文件通常在/usr/include
和/usr/local/include
中找到。你可以把它们放在任何地方,但编译器会自动搜索这些地方。
库对象文件通常位于/lib
、/usr/lib
和/usr/local/lib
中。你可以把它们放在任何地方,但链接器和加载程序会自动搜索这些地方。
它们之间的区别是:
-
/lib
是系统启动所需的基本功能。 -
CCD_ 12和CCD_。
-
/usr/local/include
和/usr/local/lib
适用于系统管理员(例如您)安装的软件。 -
记住:你可以选择在任何你想要的地方安装库,你只需要记住告诉编译器和链接器在哪里可以找到它们。
- 对于MacOS上的G++,如何添加默认的include目录/usr/local/include和默认的库搜索路径/usr
- 在 /usr/local/lib 下找不到库
- pip install uwsgi 失败,出现 /usr/local/include/string/string.h:7:10:致命错误:找不到'sstream'文件?
- 将 TensorFlow 链接到C++.Protobuf (/usr/local/include/google/prot
- Boost 文件在 /usr/local/include 和 /usr/include 中有所不同
- 带有定制 GLFW 二进制 /usr/bin/ld 的 Centos 7: /usr/local/lib/libglfw3.a(init.c.o):".text"部分中无法识别的重定位 (0x2a)
- 在 Ubuntu 16.04 的 usr/local/bin 中安装的 c++ 应用程序在从主目录执行时无法正常运行
- 如何将我的控制台应用程序链接到使用 clang++ 作为编译器的 OSX 环境中的 /usr/local/lib 中存在
- 如何使用Clang 链接到Boost /usr /local编译
- 不应该在 /usr/local/include 中抑制来自头文件的警告吗?
- dyld:库未加载:libicui18n.54.dylib 引用自:/usr/local/lib/libxerces-c
- Cmake,在 /usr/local/include 中查找头文件,在 /usr/local/lib 中查找库
- XCode 找不到 zmq.h,即使它位于 /usr/local/include 和标头搜索路径中
- 捆绑的动态库:继续在/usr/local/lib中查找
- 无法加载/usr/local/lib(Fedora x64)中存在的共享库
- GCC在/usr/local/include中找不到头文件
- /usr/local/include/tk.h:71:13:致命错误:安装 Python 库时找不到'X11/Xlib.h'文件
- 链接错误 OpenCV 仅在使用 -wl,-rpath,/usr/local/MATLAB/R2014b/bin/gln
- gcc 的默认标头路径,当在 /usr/local 之外停滞时
- 在/usr/local/lib中安装xmlrpc for c++