c++库是否依赖于C库?(对于GCC和linux来说)
Does C++ library depend on C library? (for the case of GCC and linux)
对于GCC和linux,
我想知道
-
如果c++库依赖于C库API
-
如果c++库包含所有系统调用
-
如果存在提供系统调用的系统库,而不是C/c++库。(我相信pthread库提供了一些posix线程API)
提前感谢。
如果c++库依赖于C库API
对于GNU C,是的。这样做可能是有益的,因为许多C标准库函数也是c++标准的一部分。
如果C库包含所有系统调用。
它没有"包含"一个单独的系统调用,因为系统调用是由内核公开的。C库所做的是为系统调用提供一些包装器,但不,不一定是所有的包装器。有一些帮助程序可以调用没有提供包装器的系统调用。也许从这里开始读:syscalls(2)
.
如果c++库包含所有的系统调用
见上图。
如果存在提供系统调用的系统库,而不是C/c++库。(我相信pthread库提供了一些posix线程API)
是的(在你的措辞中添加了"包装器"这个词),而且你已经举了一个例子。请注意,POSIX线程API不需要内核级线程,但它在Linux上使用它们实现。
是,GNU c++库与GNU C库链接。
$ ldd /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20
linux-vdso.so.1 => (0x00007ffc1b5bc000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb25239c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb251fd2000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb2529b3000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb251dbc000)
相关文章:
- Steam 回调在 Linux / GCC 编译期间触发警告
- 调试模板时出现问题.专门针对 Linux GCC 7、GCC 6、GCC 5、GCC 4.9 错误构建失败:模板参数 1
- 强制 Clang 在 Linux 中使用 llvm 而不是 GCC
- 关于这个在 Linux 上使用 gcc 编译的程序中的 vtable,nm 告诉我什么?
- 我可以在Windows(Visual C++)中读取bin文件,但不能在linux(GCC)上读取bin文件
- 将静态库链接到 gcc Linux 中的动态实验室
- 如何在没有编译器的情况下在 Linux 上安装 gcc
- C 模板未在Linux GCC上编译
- 除了 Linux 上的源代码和编译 (GCC) 之外,有没有办法在 Windows 中托管 IDE
- 简单派生类上的Linux GCC链接错误
- GCC Bug,使用尖括号通过宏包含标头时"linux"路径中的字符串"<>"替换为 "1"
- 如何使用 arm-linux-gcc 交叉编译 gmock
- GCC 编译器对类型转换有什么作用?为什么 mac 和 Linux 上的输出不同
- 有没有比 GCC 或 Clang 实现更直观的方法来在 Linux 的C++中使用内联汇编
- 什么是最好的(即快速和小)是在GCC linux上atomic_fetch_ptr和atomic_set_ptr
- DIS(P X)-X在GCC Linux X86-64 C 中始终导致Pointer P和Integer X的P
- 什么是 gcc Linux x86-64 C++中的有效指针
- C++ / gcc / linux 中的延续/协程/生成器
- gcc(Linux/MinGW)是否存在编译器标志,以便在运行时引发除以零的错误
- 在GCC linux中编译时的一堆错误和警告