1.头文件
include存放的是编译库文件生成的头文件集合,比如curl目录,目录中都是.h文件,添加方式如下:
2.库文件
lib是存放库文件的目录,形如libxxx.so或libxxx.a形式的文件,添加方式如下:
3.引用
库的引用可以直接取libxxx.a中的xxx部分,如下的curl、ssl、crypto就是:
1.编译报错“undefined reference to `pthread_create'”
解决办法:引入pthread库
2.编译报错“libcrypto.a undefined reference to symbol 'dlclose'”
解决办法: add -ldl after libcrypto and libssl in your link command.
(1)VC++6.0环境
第一步:NEW->Projects->Win32 Static Library
第二步:编写头文件和.cpp源文件。
第三步:将头文件和.cpp源文件添加到刚才新建的工程中。如果你用的是VC6.0可能会下面的问题。(对于这个问题,下面会有一篇文章来解决。文章地址:
VRQNWV0C5($Z$$Y[EIZL_Z4
第四步:编译、链接就可以生成一个后缀为.lib文件。也就是说静态库就生成好了。
(2)DEV C++环境
第一步:NEW->Project->Static Library
第二步:编写头文件和.cpp源文件。
第三步:将头文件和.cpp源文件添加到刚才新建的工程中。
第四步:编译、链接就可以生成一个后缀为.a文件。(应为DEV C++是基于GCC的,所以生成的静态库文件是以.a结尾的。)
小结:其实创建静态库的过程,都是类似的。
如何使用静态库?
(1)在VC6.0和DEV C++中通用的方法(对于后缀是.lib文件):
使用预编译语句。如:#pragma comment(lib, "库文件名")
并且要将头文件在程序的开始出声明。
例子:
#include #include #include "Max_Value.h" #pragma comment(lib, "Max_Value.lib")
using namespace std
int main(int argc, char *argv[]) { int a[3]={2,3,4} int i printf("hello!\n") i=Find_max(a,3) printf("%d\n",i) system("PAUSE") return 0}
库文件在最后贴出来。
(2)在dev C++ 中使用.a静态库文件
首先要创建一个工程,然后Project->Project Options->Parameters,点击Add library or Object,选择你要使用的那个库文件。这个时候就随便你什么后缀的库文件了。
库文件具体的源代码如下:
//Max_Value.h
#ifndef _MAX_VALUE_H #define _MAX_VALUE_H int Find_max(int *a, int n)#endif
//Max_Value.cpp
int Find_max(int *a ,int n ) { int max int i max=a[0] for(i=1i if(a[i]>max) max=a[i] } return max}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)