为什么winpcap需要运行.lib和.dll?
规格可以在这里看到:
http://www.winpcap.org/docs/docs_40_2/html/group__wpcapsamps.html
这很奇怪, .lib
或.dll
足够IMO,为什么它需要两者?
通常,您需要链接器的.lib
和运行时的.dll
。 .lib
文件称为“导入库”,它包含告诉链接器可以在关联的.dll
文件中找到您正在调用的函数的.dll
。
您可能会发现在运行时只需要.dll
文件。
这是Win32 DLL项目广泛使用的布局,并不仅限于Winpcap。
它不仅与winpcap,所有外部库都是这样的。
- 当您编译使用特定库的源代码时,您需要来自该库的头文件
*.h
,您将获得*.o
文件 - 将这些
*.o
文件链接到可执行文件时,您将需要*.lib
或*.dll.a
文件。 - 运行这些可执行文件时,您将需要
*.dll
文件
如果你打电话给一个Dll,你需要一个Lib。 您可以在下面看到更多信息
这是来自维基百科
链接到动态库通常通过在构建或链接以创建可执行文件时链接到导入库(.LIB)来处理。 然后,创建的可执行文件包含一个导入地址表(IAT),通过该表引用所有DLL函数调用(每个引用的DLL函数在IAT中包含其自己的条目)。 在运行时,IAT填充了适当的地址,这些地址直接指向单独加载的DLL中的函数。