【问题标题】:How to know what part of code uses Glibc如何知道代码的哪一部分使用了 Glibc
【发布时间】:2013-01-27 21:49:31
【问题描述】:

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

谢谢!

【问题讨论】:

  • 你不能把glibc从链接行中去掉,看看所有未定义的符号错误出现在哪里吗?
  • 除了最基本的没有任何输入或输出的程序外,几乎一切都需要标准库。为什么要在没有它的情况下进行链接?

标签: c++ linux glibc


【解决方案1】:

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

您需要 glibc 来调用系统调用(它提供了围绕 readwriteopenfork 等的“包装器”。

你需要 glibc 提供 I/O 函数,例如printfscanfgetchargetcfopenfclose等。

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

需要glibc提供其他标准函数,rand,srand,qsort,assert,exit,setjmp,longjmp

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

当然,除非您将 glibc 替换为提供相同功能的其他库。 uclibc 应该更“轻量级”,因为它针对的是内存更昂贵的嵌入式系统。

【讨论】:

    最近更新 更多