windows中封装静态库例程

本文通过实例介绍如何在Windows环境下创建静态库。首先创建包含主函数的a.c文件、功能函数实现在b.c中,b.h为接口声明。通过makefile编译链接,最终生成b.lib静态库文件。

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

  在windows平台下编写程序时,常常会希望别人能够使用自己的代码,但是又不希望别人看见你的代码,那么有没有什么方法可以解决这个问题呢?

  当然有,在windows平台下,通过将源文件打包成为静态库或者动态库,就可以完美的解决这个问题。本文通过例子的形式讲解静态库的生成过程。

  windows下的静态库的后缀名为lib。我们通过将源文件打包成为lib文件,然后同时给别的开发者提供一个说明接口的头文件,这样别人就可以使用你的静态库了。

  首先,我们新建4个文件,作用如下

  a.c:主函数所在的文件

  b.c功能函数实现的文件 被a.c中的主函数调用

  b.h功能函数实现文件的头文件

  makefile:makefile 源文件


  所有文件的具体内容如下:

  a.c

#include"stdio.h"
#include"b.h"

void main(void)
{
	int i;
	i = multiple(3,4);
	printf("hello makefile\n");
	printf("i = %d\n",i);
}


b.c

#include"b.h"

int multiple(int a, int b)
{
	return a * b;
}


b.h

#ifndef B_H
#define B_H

int multiple(int a, int b);

#endif


makefile

TOOLDIR = D:\MyDownloads\Download\VC6.0green\VC98
DIR = $(TOOLDIR)\Include
LIB_DIR = $(TOOLDIR)\Lib

INCDIR = -I b.h -I $(DIR)
LIB = $(LIB_DIR)/LIBC.LIB $(LIB_DIR)/OLDNAMES.LIB \
$(LIB_DIR)/KERNEL32.LIB


Test:a.obj b.lib
	-Link a.obj b.lib $(LIB)

a.obj:a.c
	-cl a.c $(INCDIR) $(LIB)

b.lib:b.obj
	-lib b.obj

b.obj:b.c
	-cl b.c $(INCDIR) $(LIB)

.PHONY:clean
clean:
	@echo clean the following files:
	-rm *.exe
	-rm *.obj
	-rm *.lib
	@echo Done!

makefile的作用就是现将a.c编译成为a.obj。然后将b.c编译成为b.lib,最后将这两个链接成为目标文件

  

  在运行makefile后会生成一个b.lib文件,这样以来,你就可以将你工程目录中的b.c去掉了,在需要时,你将b.c和b.lib给别人就行了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值