![](/img/trans.png)
[英]Are there any tool to parse a C file and show my code layout in a treeview, so I can easily tell which #defines a function depends on to be compiled?
[英]Can I compile a C program which depends of a library, but this library isn´t a .h file is a binary file, because it was compiled anteriority?
我在 C (program_a.c) 中有一个程序,该程序依赖于它没有在其主体中声明的一些函数,因为这些函数在另一个文件 (library.h) 中,但我没有 file.h或 file.c 只有我编译的版本是二进制文件。
我可以编译我的程序并使用这个不是啊或.c 文件的库吗?
如果您知道库中的函数,您可以制作自己的library.h
以使编译器成功,然后您只需要 linker 以确保library.o
(或.a
或...)已链接。
如果您的程序正在使用来自这个外部编译库的 function func()
,那么您需要:
func()
声明- 通常它将在 header 文件中(通常随库提供)。 如果这个文件被称为profile.h
,你会在你的程序中调用func()
的源代码中#include
它。func()
定义- 这个 function 的实现 - 虽然你看不到它,但它必须在这个库的二进制文件中。 您可以通过运行nm libprofile.a
来验证它,它会显示库的函数名称(尽管有时如果在编译时删除了它的符号,它可能不会显示它们)。如果您没有声明- 您的代码将无法编译。
如果您没有定义- 您的代码将不会链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.