是否总会有一个与您构建的 .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
,或者以编程方式加载.dll
(c/c++
),没有第三种方式?
ieplugin,据我所知,是的。您想使用哪种第三种方式?我认为可以通过在运行时加载 DLL 并将它们用作可互换/可修补的库来完成很多很酷的事情。
Mingw 在大多数情况下可以直接链接到 DLL,它不需要 显式导入库(尽管 gcc 导入库是 *.a 文件,而不是 .lib,但想法是一样的)。【参考方案2】:
它通常自动发生(对于任何导出至少一个符号的 DLL 或可执行文件)。编辑:至少对于我使用过的编译器;我想可能有一个编译器不会自动生成一个 - 我很确定至少有几个编译器的几个版本我没有尝试/使用过。
【讨论】:
以上是关于是否总会有一个与您构建的 .dll 相关联的 .lib(导入库)?的主要内容,如果未能解决你的问题,请参考以下文章
SQL 语法错误:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册
模块mfc42d.dll可能与您正在运行的windows版本不兼容。检查该模块是否与regsvr32.exe的x86或x64版