您的位置:首页 > 运维架构 > Linux

linux下使用eclipse编译、链接、动态库的学习笔记

2015-05-03 19:11 363 查看
 一、创建动态链接库

1、创建工程new->project->c++ project选择Shared Library->Empty Project.输入工程名MySharedLib,点击finish,完成工程的创建。

  2. 库代码的编写

2.1.testa.cpp

[cpp] view
plaincopy





#include <stdio.h>

void Test_a()

{

printf("This is Test_a!");

}

2.2. testb.cpp

[cpp] view
plaincopy





#include <stdio.h>

void Test_b()

{

printf("This is Test_b!");

}

2.3. testc.cpp

[cpp] view
plaincopy





#include <stdio.h>

void Test_c()

{

printf("This is Test_c!");

}



2.4、API接口文件

testh.h

[cpp] view
plaincopy





void Test_a();

void Test_b();

void Test_c();

编写代码在windows下封装动态链接库时对要封的函数要用__declspec(dllexport)来标明,在linux下不用,在linux下只需要直接把要封的函数的声明放到一个API头文件(.h文件)中,要用这个库时将相应的API头文件(.h文件)加载到工程中。  

3、生成动态链接库编译代码,成功后在Debug目录下会生成libMySharedLib.so文件。



二、动态链接库的使用

1、创建工程new->c++ project->Executable->Empty Project.工程名为TestLib

2、编写所需代码,并将相应的API头文件(.h文件)放到工程目录下并加载到工程中。

main.cpp

[cpp] view
plaincopy





#include "testh.h"

int main()

{

Test_a();

Test_b();

Test_c();

return 0;

}



3、加入动态链接库libMySharedLib.so右键工程Properites->C/C++ Build->Settings,然后如下图



注意最右边,库的名称libMySharedLib.so变为MySharedLib,库的路径就写这个库所在的路径。

4、修改环境变量。

  以上均做正确的话编译链接是能通过的,但是在运行时会报错error while loading shared libraries: libShared.so: cannot open shared object file: No such file or directory ,这时需要修改环境变量。在工程处右键,Run As->Run Configurations,选择Environment,如下图:




  新加一个环境变量,名称必需是 LD_LIBRARY_PATH,值为动态链接库所在的路径。

  以上就完成了linux下生成动态链接库和使用动态链接库。

5. 运行结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: