2016-06-07 42 views
1

所有我有一些问题,如波纹管的使用:什么./lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a

  1. STL头只图书馆吗?就像BOOST?
  2. 如果STL不是标头,那么是STLcpp文件?我们为什么需要./lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a

谢谢

+0

[3]'libstdC++。so。 '是使用STL时静态链接到可执行文件的动态库。对于静态链接'libstdC++。a'是必需的。 – sameerkn

+1

问题0:你为什么在谈论“STL”?我认为你的意思是标准库。不,标准库不只需要.cpp文件,它需要直接的编译器支持。 – MSalters

回答

1
  1. 的libstdC++是C++标准库(不只是 “STL的”)的实现。它不是只有标题。 (对于这个问题,这两方面都没有提升)。

正如@sameerkn说,非仅标头部分有两种版本,一种是dylib(通常命名为libstdc++.so.<version>),和静态链接文件(通常命名为libstdc++.a)。大多数人使用dylib版本。

  1. cpp文件用于构建上述的库。他们没有安装在大多数系统上,因为大多数人不重建他们的标准库 - 他们只包括头和链接对象(静态或动态)。

  2. 请参阅上文 - 库不仅仅是标题。