首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我需要将lib文件链接到我的项目?

为什么我需要将lib文件链接到我的项目?
EN

Stack Overflow用户
提问于 2011-08-05 21:27:57
回答 7查看 3.5K关注 0票数 12

我正在创建一个使用DLL的项目。要构建我的项目,我需要包含一个头文件和一个lib文件。为什么我需要包含相应的lib文件?头文件不是应该声明所有需要的信息,然后在运行时加载任何需要的库/dll吗?

谢谢

EN

Stack Overflow用户

发布于 2011-08-05 21:37:56

不,头文件并不是必须的。头文件可以只包含函数和类的声明以及您需要的其他东西,而不是它们的实现。

这段代码之间有很大的不同:

代码语言:javascript
复制
void Multiply(int x, int y);

这段代码是:

代码语言:javascript
复制
void Multiply(int x, int y)
{
   return x * y;
}

第一个是声明,第二个是定义或实现。通常第一个示例放在头文件中,第二个示例放在.CPP文件中(如果您正在创建库)。如果您在第一个头中包含了一个头,但没有链接任何内容,那么您的应用程序如何知道如何实现Multiply?

现在,如果您使用的头文件包含全部内联的代码,则不需要链接任何内容。但是,如果有一个方法没有内联,而是在编译成.lib文件的.CPP文件中实现,那么就需要在.lib文件中进行链接。

编辑通过使用Import Libraries,您将告诉链接器不要将导入的代码的实现详细信息包含到您的二进制文件中。相反,操作系统将在运行时将导入DLL加载到您的进程中。这将使您的应用程序更小,但您必须随附另一个DLL。如果库的实现发生变化,您只需向客户重新安装另一个DLL,而不必重新安装整个应用程序。

还有另一种选择,你可以只链接到一个库中,而不需要发布另一个DLL。该选项是链接器将实现包含到您的应用程序中的地方,使其更大。如果您必须更改导入库中的实现细节,则必须重新编译和重新链接整个应用程序,并将整个过程重新封装给您的客户。

票数 2
EN
查看全部 7 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6957061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档