gpt4 book ai didi

c - 如何阅读 CLion 中 C 库的源代码

转载 作者:行者123 更新时间:2023-12-04 01:15:32 44 4
gpt4 key购买 nike

  • 操作系统:Deepin 20(基于Debian 10)
  • CLion: 2020.1.2
  • 海湾合作委员会:海湾合作委员会(Uos 8.3.0.3-3+重建)8.3.0
  • 制作:4.2.1 x86_64-pc-linux-gnu
  • CMake:3.18.1

我是一个刚开始学习C语言的新人。当我使用 CLion 编写 C 代码时,我可以通过 Ctrl + mouse click 访问它。

我在 header 函数中调用方法。例如,如果我使用 printf ,我可以访问 stdio.h 文件,可以在第 332 行 extern int printf (const char * ___,限制,格式,...);

但是如果我想查看这个方法的细节

我看不到。根据Navigate in the code structure

使用Ctrl+Alt+Home 切换。但是IDE提示No related file

如何获取调用方法的源代码?我想通过查看他们库中的实现逻辑来学习其他人的良好经验

感谢您的评价。如果您能帮助我,我将不胜感激。

最佳答案

即使大多数 GNU/Linux 软件都是 open source ,默认情况下它不会安装(以源代码形式)在您的计算机上。

关于 C 编程,请参阅 Modern C (和 C11 标准 n1570 )并阅读你的 C 编译器的文档(可能是 GCCClang ,或者更简单的像 nwcctinycc ),你的链接器(可能是 binutils ),你的build automation工具(例如 GNU makeninjacmake )。启用所有警告和 DWARF调试信息,所以如果使用 GCC至少用 gcc -Wall -Wextra -g 编译;然后改进您的 C 代码以获得任何警告。一旦调试了 C 源代码(使用 GDB 和可能的 valgrind ),添加优化标志,例如 -O2gcc 的参数顺序很重要!

考虑,对于某些任务,使用 GNU bison 等工具生成一些 C 代码(可能是一些 #include-d 头文件) , ANTLR , SWIG , RPCGEN , AWK , GUILE , GPP , GNU m4 , GNU autoconf - 或您自己的程序或脚本。

I want to learn from the good experiences of others by looking at their implementation logic in their libraries

您需要从其他地方获取源代码。

有关示例,请参阅 GNU libcmusl-libc , 和 Linux kernel (以及其他: GTKPostGreSQLsqliteGUILE 等....包括此答案中提到的许多开源程序)并查看 github 等网站, gitlab , sourceforge

另请阅读 Advanced Linux Programmingsyscalls(2) .另见 http://linuxfromscratch.org/

2020 年,最近 GCC当要求优化时,编译器恰好处理对 printf 的特殊调用。查看softwareheritageFrama-C项目。

在某些情况下,考虑接受 plugins在你的程序中使用 dlopen(3)dlsym(3) (另见 elf(5)How to Write Shared Libraries )。您甚至可以在运行时使用 libgccjit 等库生成一些代码(或在运行时生成 C 代码,然后将其编译为插件,并加载它;这种方法称为 metaprogramming 并且与 partial evaluation 相关;另请参阅 blog of the late J.Pitrat 以获得更多见解)。

当然,您需要工具来在源代码中导航。考虑使用 GNU emacs结合GNU grep为此,或其他一些source navigator.对于数百万源代码行的大型程序,考虑自己编写 GCC plugin了解他们。

还可以使用 strace(1) 等工具和 GDB了解程序的动态行为。

需要几个月的全职工作来探索这一切。

您可能会对 ACM 感兴趣 session 论文也。

对于您自己的源代码,请考虑使用一些 version control工具,例如 git .当然要阅读它的文档。并使用 LibreOffice , LoutLaTeX , MarkDown (可能与 inkscapediagrams 结合用于数字)来编写您的软件的文档。

在某些情况下,您可能会考虑从部分源代码生成部分文档(例如,使用 literate programming 技术,如 nuweb 或文档生成器,如 doxygen)。

关于c - 如何阅读 CLion 中 C 库的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63479457/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com