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. 运行结果
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. 运行结果
相关文章推荐
- linux下使用eclipse编辑,链接,使用动态库的学习笔记
- 自己在linux上编译、链接、动态库和静态库的学习笔记
- 自己在linux上编译、链接、动态库和静态库的学习笔记
- 自己在linux上编译、链接、动态库和静态库的学习笔记
- Linux学习笔记——如何在交叉编译时使用共享库
- Linux学习笔记——如何在交叉编译时使用共享库
- Linux下gcc编译器生成和使用静态库和动态库学习笔记
- Linux学习笔记——怎样在交叉编译时使用共享库
- Linux下gcc编译器生成和使用静态库和动态库学习笔记
- Linux学习笔记——如何使用共享库交叉编译
- 大数据学习笔记——hadoop1.2.1 eclipse_plugin编译、安装及使用
- 【Linux 学习笔记】 使用编译
- OK6410 Linux开发环境搭建--编译以及ubuntu的使用方法学习笔记
- 学习在linux和windows安装GSL和使用,编译 链接 和makefile的撰写和实现
- linux学习笔记一, c语言程序的编译链接
- 大数据学习笔记:在eclipse上使用Ant插件实现自动编译打包
- Java学习笔记4. 在Linux Fedora 27中安装Eclipse并编译第一个源程序
- 【Linux学习笔记】chmod的字符串参数形式使用
- C语言学习笔记--动态库和静态库的使用
- C语言学习笔记--动态库和静态库的使用