最早在学习的时候,写库文件比较少,所以有些记不清楚,今天写下来以便以后的学习和复习。
我写一个简单的lib库,正所谓知微见著,希望也能给大家带来帮助。
我使用的是VS2013编写库,首先创建一个静态库的工程,如下图所示:
然后写一个头文件命名为:Lib.h
内容为:
#ifndef _LIB_H_
#define _LIB_H_
extern "C" int max(int first, int second);
extern "C" int min(int first, int second);
extern "C" int sum(int first, int second);
extern "C" int sub(int first, int second);
#endif
然后写一个CPP文件,命名为:DemoLib.cpp
内容为:
#include "stdafx.h"
#include "lib.h"
int max(int first, int second)
{
return first> second ? first : second;
}
int min(int first, int second)
{
return first< second ? first : second;
}
int sum(int first, int second)
{
return(first + second);
}
int sub(int first, int second)
{
return(first - second);
}
贴图显示:Lib.h文件和DemoLib.cpp文件
我们编译完成后就会生成一个库文件:DemoLib.lib。这个是我们下面需要的。
如图所示:
该文件在Dubug目录下。但注意在生成的工程的dubug目录下,不在子项目的dubug目录下。
现在这个就是我们要使用的库文件。
我们现在再编写一个控制台的空项目程序。并且新建一个名为:testDemoLib.cpp文件
内容为:
#include "Lib.h" //需要添加的头文件
#include "iostream"
#pragma comment(lib, "DemoLib.lib")//需要添加的库文件
int main()
{
int firstNum= 9, secondNum = 5;
std::cout<< "max(" << firstNum << ", " << secondNum<< ") = " << max(firstNum, secondNum) <<std::endl;
std::cout<< "min(" << firstNum << ", " << secondNum<< ") = " << min(firstNum, secondNum) <<std::endl;
std::cout<< "sum(" << firstNum << ", " << secondNum<< ") = " << sum(firstNum, secondNum) <<std::endl;
std::cout<< "sub(" << firstNum << ", " << secondNum<< ") = " << sub(firstNum, secondNum) <<std::endl;
return0;
}
如图所示:
并需要把上一个编写生成的库DemoLib.lib文件放到与testDemoLib.cpp相同的目录一下,并把上一个头文件Lib.h文件放到当前目录下。
如图所示:
最后编译运行,结果如图所示:
我写一个简单的lib库,正所谓知微见著,希望也能给大家带来帮助。
我使用的是VS2013编写库,首先创建一个静态库的工程,如下图所示:
![静态库lib的编写 静态库lib的编写](https://i-blog.csdnimg.cn/blog_migrate/974a194c0eee9fd059af69388728efff.jpeg)
![静态库lib的编写 静态库lib的编写](https://i-blog.csdnimg.cn/blog_migrate/dd3ef409ed683a77ffa8ce504e3f386c.jpeg)
![静态库lib的编写 静态库lib的编写](https://i-blog.csdnimg.cn/blog_migrate/b4c942ba3124d40001dcee1a3700e62a.jpeg)
![静态库lib的编写 静态库lib的编写](https://i-blog.csdnimg.cn/blog_migrate/e6700a46aea3d5f57b856895c77f8e3f.jpeg)
然后写一个头文件命名为:Lib.h
内容为:
#ifndef _LIB_H_
#define _LIB_H_
extern "C" int max(int first, int second);
extern "C" int min(int first, int second);
extern "C" int sum(int first, int second);
extern "C" int sub(int first, int second);
#endif
然后写一个CPP文件,命名为:DemoLib.cpp
内容为:
#include "stdafx.h"
#include "lib.h"
int max(int first, int second)
{
}
int min(int first, int second)
{
}
int sum(int first, int second)
{
}
int sub(int first, int second)
{
}
贴图显示:Lib.h文件和DemoLib.cpp文件
![静态库lib的编写 静态库lib的编写](https://i-blog.csdnimg.cn/blog_migrate/447cf0aa5df976dc840cec9276a29cc6.jpeg)
![静态库lib的编写 静态库lib的编写](https://i-blog.csdnimg.cn/blog_migrate/ffc2b7a0e5ea20830cd4920d2b64dbfa.jpeg)
如图所示:
![静态库lib的编写 静态库lib的编写](https://i-blog.csdnimg.cn/blog_migrate/7b88dad1c57da1f8dc611edd1662c8cb.jpeg)
该文件在Dubug目录下。但注意在生成的工程的dubug目录下,不在子项目的dubug目录下。
现在这个就是我们要使用的库文件。
我们现在再编写一个控制台的空项目程序。并且新建一个名为:testDemoLib.cpp文件
内容为:
#include "Lib.h" //需要添加的头文件
#include "iostream"
#pragma comment(lib, "DemoLib.lib")//需要添加的库文件
int main()
{
}
如图所示:
![静态库lib的编写 静态库lib的编写](https://i-blog.csdnimg.cn/blog_migrate/0e67d67fefc70421fbc3093bd7e3c05b.jpeg)
并需要把上一个编写生成的库DemoLib.lib文件放到与testDemoLib.cpp相同的目录一下,并把上一个头文件Lib.h文件放到当前目录下。
如图所示:
![静态库lib的编写 静态库lib的编写](https://i-blog.csdnimg.cn/blog_migrate/ae28a025f8c06e9406f8c41217b88efe.jpeg)
![静态库lib的编写 静态库lib的编写](https://i-blog.csdnimg.cn/blog_migrate/ce0c34e8c74f39c45cc66b48ca4b04f0.jpeg)