Linux下使用Eclipse创建/生成动态库

创建动态链接库

1.1 创建工程new->project->C Project->Shared Library->Empty Project,之后选择Linux GCC ,输入工程名MeLib,最后点击Finish.(此处Shared Library很好理解,创建的动态链接库目的就是被其他程序所调用,因此创建为共享库)如图:
Linux下使用Eclipse创建/生成动态库
1.2 创建相应的功能文件右键工程new->Source folder, 输入文件名此处命名为src,添加要编写的.c文件,右键src,new->Source file,本文中此处命名为test.c,实现代码如下:(此处就是你动态库.so要实现的功能)

/*
 * testa.c
 *
 *  Created on: 2018年10月7日
 *      Author:
 */
#include<stdio.h>
void Test(){
	printf("hello  first!!!");
}

1.3 配置链接参数右键工程,Propertise->C/C++ Build->Settings->GCC C Compiler->Miscellaneous, 将-fPIC勾选上如下:
Linux下使用Eclipse创建/生成动态库
-fPIC 作用于编译阶段,告诉编译器产生与位置无关代码。则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。
1.4 点击Build Project 编译成功之后在Debug目录里面生成了libMeLib.so文件,如下:
Linux下使用Eclipse创建/生成动态库

使用动态库

2.1 创建需要调用动态链接库的工程,new->project->C Project->Executable->Empty Project,输入工程名test,最后点击Finish.
2.2 创建相应的功能文件右键工程new->Source folder, 输入文件名此处命名为src.首先添加我们调用的动态链接库的API接口文件testh.h这个头文件主要放动态链接库中封装的函数的声明,我们要用这个动态库时就需要将相应的API头文件加载到工程中,testh.h文件实现如下:

/*
 * testh.h
 *
 *  Created on: 2018年10月7日
 *      Author: 
 */
#ifndef TESTH_H_
#define TESTH_H_
void Test();
#endif /* TESTH_H_ */

添加要编写的.c文件,右键src,new->Source file,本文中此处命名为main.c,实现代码如下:

/*
 * main.c
 *
 *  Created on: 2018年10月7日
 *      Author:
 */
#include "testh.h"
int main(){
	Test();
	return 0;

}

2.3 添加动态链接库的路径,右键工程 ,Propertise->C/C++ Build->Settings->GCC C Linker->Libraries,注意是MeLib 不是libMeLib
Linux下使用Eclipse创建/生成动态库
2.4 添加环境变量
如果遇到以下问题
Linux下使用Eclipse创建/生成动态库
是因为编译器会去默认的路径去寻找库文件,

因此此处我们要添加新的库文件路径,Run as->Run Configurations->C/C++Application ->test ->Environment ,如下:

Linux下使用Eclipse创建/生成动态库

2.5 运行结果
Linux下使用Eclipse创建/生成动态库

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-18
  • 2021-08-16
  • 2022-12-23
  • 2022-02-14
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-05-25
  • 2021-04-26
  • 2022-01-04
  • 2022-01-05
相关资源
相似解决方案