如何生成、调用linux C++静态库 动态库
扫描二维码
随时随地手机看文章
我使用的是ubuntu 12.04 编程环境是eclipse 呵呵,闲话少叙开始说静态库的生成设置吧
三个步骤
1.在一个头文件中声明需要导出的函数的函数
2.在一个源文件当中实现需要导出的函数
3.编译源文件生成可执行函数
main.h
/* * main.h * * Created on: Jul 20, 2014 * Author: john */ #ifndef MAIN_H_ #define MAIN_H_ void welcome(); void outstring(const char* str); #endif /* MAIN_H_ */
main,cpp
/* * main.cpp * * Created on: Jul 20, 2014 * Author: john */ #include#include"main.h" using namespace std; void welcome() { cout<<"welcome to usn"; } void outstring(const char* str) { cout<<str<<endl; }
在eclipse中的设置呢就是在properity->c++ build->Settings->building artfact中选择 static library即可!
现在我们说说,静态库的调用,静态库呢,在linux当中是.a文件,我们需要知道的是
1.声明需要调用的函数
2.设置eclipse当中的C++ BUILD->setings-> tool settings->Cross G++ linker ->Miscellaneous->other objects 添加.o文件目录即可
main.cpp
//============================================================================ // Name : static_main.cpp // Author : da // Version : // Copyright : Your copyright notice // Description : Hello World in C++, Ansi-style //============================================================================ #includeusing namespace std; void welcome(); void outstring(const char* str); int main() { cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!! welcome(); outstring("dsadas"); return 0; }
这样静态库就成功了,静态库的使用,会将代码写在可执行文件当中,所以在发布的时候是不需要*.a文件的
现在说下动态库的使用,其实动态库的生成呢,是静态库一样的,我们只需要在选择的时候选择 share object就可以了
只是在使用的时候有所不同
需要在使用的时候选择 properity->C++ BUILD->Settings->ToolSettings ->Gross ++ Linker->libraries 上面Libraries中加入的是动态库*.so文件的名称
下面则是该动态库的路径,这样就把动态库添加好了,使用时和静态库一样的是,我们需要重新声明动态库中调用的函数名称。