首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++库依赖于C库吗?( GCC和linux的例子)

问C++库依赖于C库吗?( GCC和linux的例子)
EN

Stack Overflow用户
提问于 2015-10-18 10:58:49
回答 2查看 150关注 0票数 0

GCC和linux的例子,

我想知道

  • 如果C++库依赖于C库API。
  • 如果C库包含所有系统调用。
  • 如果C++库包含所有系统调用。
  • 如果有任何系统库提供C/C++库以外的系统调用。(我相信posix库会提供一些posix线程API)

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-18 11:53:20

如果C++库依赖于C库API。

对GNU C来说,是的。这样做可能是有益的,因为许多C标准库函数也是C++标准的一部分。

如果C库包含所有系统调用。

它并不“包括”单个调用,因为系统调用是由内核公开的。A库所做的是为系统调用提供一些包装器,但是不,不一定是围绕所有这些调用。有一些助手可以调用不提供包装器的syscalls。也许开始读这里:syscalls(2)。

如果C++库包含所有系统调用。

请参见上面的。

如果有任何系统库提供C/C++库以外的系统调用。(我相信posix库会提供一些posix线程API)

是的(在你的措辞中增加了“包装器”一词),你已经举了一个例子。注意,POSIX线程API不需要内核级线程,但它是在Linux上使用它们实现的。

票数 3
EN

Stack Overflow用户

发布于 2015-10-18 11:41:04

是的,GNU C++库与GNU库相链接。

代码语言:javascript
复制
$ 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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33197139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档