Windows动态库的导入表
Windows上
以CRT为例。Windows上的动态库版本的CRT库:ucrtbase.dll,其对应的导入库是 ucrt.lib。
在cl命令行或者cmake脚本时,都是写的ucrt。
即:对于windows上的动态库,在链接指令中实际要写的是导入库的名字!我会产生这个问题,是不是因为大多数时候(包括使用cmake),生成的动态库和对应的导入库的名字一模一样(除了后缀不同)
Linux上
Linux 的动态库(.so)是“自描述”的,其依赖信息(DT_NEEDED)直接嵌入在 .so 文件中,无需单独的“导入库”文件。
Windows 的 DLL 依赖信息必须通过独立的导入库(.lib)传递,因为 DLL 本身不存储依赖元数据。

浙公网安备 33010602011771号