创建静态库/动态库一定要有头文件吗?为什么?
2个回答
展开全部
不一定需要。创建一个库一般处于一下两种目的:
1、把一些相关的代码,打包成一个库,发布给其它的人用。
这中情况是最常见的情况,如写 C 语言用到 libgcc。在这种情况下,你除了提供库文件:静态库[ windows 下 .lib,linux .a];动态库:[Windows 下 .dll,Linux 下 .so] 之外,必须提供头文件。头文件是你这个库里面提供了那些接口可以供外界使用。如果没有头文件,其他人无法使用。
2、为某些软件写插件。
很多大的项目,都是模块化设计,留有一些特定的接口,方便定制。当程序运行时,会动态加载制定目录下的动态库,运行时调用动态库里面约定好的方法。
这种情况无需提供头文件,但要按照特定的约定来实现这个库。
大概就是以上这些情况。
1、把一些相关的代码,打包成一个库,发布给其它的人用。
这中情况是最常见的情况,如写 C 语言用到 libgcc。在这种情况下,你除了提供库文件:静态库[ windows 下 .lib,linux .a];动态库:[Windows 下 .dll,Linux 下 .so] 之外,必须提供头文件。头文件是你这个库里面提供了那些接口可以供外界使用。如果没有头文件,其他人无法使用。
2、为某些软件写插件。
很多大的项目,都是模块化设计,留有一些特定的接口,方便定制。当程序运行时,会动态加载制定目录下的动态库,运行时调用动态库里面约定好的方法。
这种情况无需提供头文件,但要按照特定的约定来实现这个库。
大概就是以上这些情况。
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效...
点击进入详情页
本回答由Storm代理提供
展开全部
头文件里面放的都是一些函数或变量声明,而这些声明的函数都已经在库文件中编译好了,成了二进制文件, 调用函数的时候根据头文件的声明去搜索库文件中的函数去执行。还有就是编译完了以后叫做目标文件(???这个时候库函数的代码还没有加进来的吧???),而这个目标文件并不是可以执行的,链接的时候把调用的库函数中的代码和这个目标文件链接到一起形成可以执行的文件。(静态链接和动态链接有什么不同????静态链接只是简单的把代码加入到目标文件中吗?动态链接是把代码路径告诉目标文件吗)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询