c++ - 编译器如何使用lib文件?

标签 c++ c compiler-construction

我很好奇c/c++编译器是如何分析lib文件的?我的意思是说我创建了一个包含一些类的库,我在我的主程序中使用了那个库。编译器如何知道该库中有哪些类名。当然,这些信息以二进制格式存在,我想在我的程序中使用该功能,具体来说,我有一个二进制 lib 文件,我想知道该 lib 文件中存在的所有类和属性/函数。

这可能吗?如果编译器可以做到,为什么有些库不能?

感谢任何线索

最佳答案

编译器不会执行您的建议,但链接器会执行。

编译器从包含的与 lib 文件相关的头文件中知道它需要的信息。

然后链接器将您要包含的声明和 lib 文件及其其他目标文件放在一起。

例如,可能可以通过反编译从 .lib 文件中获取信息,但这需要大量工作,而且可能不是您想要做的。

关于c++ - 编译器如何使用lib文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2570347/

相关文章:

c++ - 正则表达式引擎测试

c++ - 从缺少列的文件中读取数据。 C++

c - 结构中定义的char占用多少字节?

使用 struct 和 scanf 的 C 程序产生错误 : expected expression before ‘ROBOT’

c - 在 char 中存储两位二进制数

parsing - Bison/YACC vs. Lemon vs. 标准输入

c++ - 为什么退格键 '\b' 在 C++ 中不起作用?

c++ - 多次读取文件后,使用 ifstream 读取文件不起作用

java - 使用 -source 和 -target javac 选项编译

java - Eclipse:许多类文件