linux 编译c++动态库,如何生成、调用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<

}

void outstring(const char* str)

{

cout<

}

在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 <

welcome();

outstring("dsadas");

return 0;

}

这样静态库就成功了,静态库的使用,会将代码写在可执行文件当中,所以在发布的时候是不需要*.a文件的

现在说下动态库的使用,其实动态库的生成呢,是静态库一样的,我们只需要在选择的时候选择 share object就可以了

只是在使用的时候有所不同

需要在使用的时候选择 properity->C++ BUILD->Settings->ToolSettings ->Gross ++ Linker->libraries 上面Libraries中加入的是动态库*.so文件的名称

下面则是该动态库的路径,这样就把动态库添加好了,使用时和静态库一样的是,我们需要重新声明动态库中调用的函数名称。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值