C语言:库文件

本文介绍了C语言在Windows环境下静态库和动态库的创建与配置过程。对于静态库,需要将.lib文件和头文件复制到使用项目的目录下;而对于动态库,除了.lib和头文件,还需.dll文件。动态库在运行时链接,而静态库则在编译时链接到exe文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

库文件

库是已经写好的、成熟的、可复用的代码

windows下静态库配置

  • 创建静态库
  1. 编写头文件和.c文件
//头文件
#pragma once
int myAdd(int a, int b);

//.c文件
#include"mylib.h"
int myAdd(int a, int b) {
	return a + b;
}
  1. 项目名右键->配置属性->常规->配置类型修改为:静态库
  2. 生成项目(ctrl+b)
  • 使用静态库
  1. 将生产的(项目名.lib)文件和头文件复制到需要使用静态库的项目下
  2. 项目名右键->添加->现有项:添加lib和头文件
  3. 在新文件中可以直接使用库文件的函数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include"mylib.h"//自定义库文件
int main(void)
{
	printf("%d\n",myAdd(10, 20));
	return 0;
}

windows下动态库配置

  • 创建动态库
  1. 编写头文件(头文件的函数需要声明为导出函数)和.c文件
//头文件
#ifndef __MYDLL_H__
#define __MYDLL_H__

//该种表示为内部函数,只能供包含该函数的文件使用
//int mySub(int a, int b);

//动态库的函数需要声明为外部函数(导出函数),才能供其他文件使用
//生成.lib和.dll:.lib只包含变量声明和导出函数的声明,.dll包含实现(静态库的.lib包含所有声明和实现)
__declspec(dllexport) int mySub(int a, int b);

#endif
  1. 项目名右键->配置属性->常规->配置类型修改为:动态库
  2. 生成项目(ctrl+b)
  • 使用动态库
  1. 将生产的(项目名.lib,项目名.dll)文件和头文件复制到需要使用静态库的项目下
  2. 项目名右键->添加->现有项:添加lib和头文件(使用pragma comment(lib,"./mydll.lib")时可以不添加现有项)
  3. 在新文件中可以直接使用库文件的函数
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//可以使用以下方式替代添加动态库现有项
#pragma comment(lib,"./mydll.lib")
#include"mydll.h"

int main(void)
{
	printf("%d", mySub(20, 10));
	return 0;
}

动态库和静态库的区别
1.静态库直接编译链接到了exe文件中,删除静态库不影响exe文件运行;更新静态库后需要重新编译exe文件
2.动态库是在运行时进行链接,删除动态库后exe文件不能正常执行,降低了exe文件的大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值