c++ - 如何知道代码的哪一部分使用了 Glibc

标签 c++ linux glibc

我有一个应用程序,这个应用程序使用 Glibc,但我想在不链接 glibc 的情况下进行编译,我需要删除/更改使用它的代码。我在哪里可以获得 glibc 中定义的函数列表?

谢谢!

最佳答案

您需要 glibc 为典型的 main 入口点提供启动(例如将 argcargv 设置到正确的位置).

你需要 glibc 来调用系统调用(它提供了围绕 readwriteopenfork

需要glibc提供printfscanfgetchargetc等I/O函数, fopen, fclose

需要glibc提供典型的字符串函数,如strcpystrcatstrtokstrchr、等等

你需要glibc提供其他标准函数,rand, srand, qsort, assert, exitsetjmplongjmp

总而言之,如果没有 glibc,您可能无法编写任何有意义的程序。

当然,除非您将 glibc 替换为其他提供相同功能的库。那里uclibc据说它更“轻量级”,因为它针对的是嵌入式系统,在嵌入式系统中,内存更加宝贵。

关于c++ - 如何知道代码的哪一部分使用了 Glibc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14552706/

相关文章:

c++ - 将 QString 转换为 const char* 时不可预测的运行时行为

c++ - boost::asio async_read/async_send 正在绕过它的处理程序

c++ - 使用带类错误的 map ,编译错误

linux - Bash 将变量作为带引号的参数传递

c - 读取(3) "called with bigger length than size of the destination buffer"

c - 当这些符号是 glibc 的一部分时,链接器会更改这些符号名称

c++ - boost 互斥锁

linux - Linux内核空间如何休眠?

c++ - ld 返回的退出状态 1 是什么?

linux - 静态可执行文件中的 time(2) 正在调用常规系统调用 - 这比 vdso 调用慢。为什么?