是否总会有一个与您构建的 .dll 相关联的 .lib(导入库)?

Posted

技术标签:

【中文标题】是否总会有一个与您构建的 .dll 相关联的 .lib(导入库)?【英文标题】:Is it true that there will always be a .lib(import library) associated with the .dll you build? 【发布时间】:2010-07-25 04:46:12 【问题描述】:

或者我需要明确指示编译器吗?

【问题讨论】:

【参考方案1】:

如果使用像“ieplugin”这样的用户名,答案可能是否定的。COM 服务器没有 .lib 文件。对于常规 DLL,.lib 文件由链接器生成,而不是编译器。 /IMPLIB 选项生成它们。

【讨论】:

虽然您通常不会 .lib 文件用于COM 服务器,但它 正常生成的。举个例子,如果你用 MSVC++ 创建一个默认的“ActiveX 控件”项目并编译它,构建日志将包含如下一行:“1> 创建库 c:\c\projects\whatever\Debug\whatever.lib 和对象 c:\c\projects\whatever\Debug\whatever.exp" 我们是否只能通过导入库使用.dll,或者以编程方式加载.dllc/c++),没有第三种方式? ieplugin,据我所知,是的。您想使用哪种第三种方式?我认为可以通过在运行时加载 DLL 并将它们用作可互换/可修补的库来完成很多很酷的事情。 Mingw 在大多数情况下可以直接链接到 DLL,它不需要 显式导入库(尽管 gcc 导入库是 *.a 文件,而不是 .lib,但想法是一样的)。【参考方案2】:

它通常自动发生(对于任何导出至少一个符号的 DLL 可执行文件)。编辑:至少对于我使用过的编译器;我想可能有一个编译器不会自动生成一个 - 我很确定至少有几个编译器的几个版本我没有尝试/使用过。

【讨论】:

以上是关于是否总会有一个与您构建的 .dll 相关联的 .lib(导入库)?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将一个产品积压与多个项目相关联? [关闭]

SQL 语法错误:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册

版本控制数据库的正确策略

模块mfc42d.dll可能与您正在运行的windows版本不兼容。检查该模块是否与regsvr32.exe的x86或x64版

是否可以将一个苹果开发者账户与主要苹果开发者账户相关联?

如何动态构建LINQ