linux下Eclipse进行C编程时动态链接库的生成和使用
前面的博客中讲了在window下C工程中封装dll和lib,在linux下同样需要封装动态链接库,linux下的动态链接库名称以lib开头,扩展名为.so。下面记录在linux下用Eclipse进行C编程时封装动态链接库的方法和向工程中添加动态链接库的方法。
一、创建动态链接库
1、创建工程
new->project->c++ project
选择Shared Library->Empty Project.输入工程名a,点击finish,完成工程的创建。
2、编写代码
在windows下封装动态链接库时对要封的函数要用__declspec(dllexport)来标明,在linux下不用,在linux下只需要直接把要封的函数的声明放到一个.h文件中,要用这个库时将相应的.h文件加载到工程中。
3、生成动态链接库
编译代码,成功后在Debug目录下会生成liba.so文件。
二、动态链接库的使用
1、创建工程
new->c++ project->Executable->Empty Project.工程名为libr
2、编写所需代码,并将相应的.h文件放到工程目录下并加载到工程中。
3、加入动态链接库liba.so
右键工程Properites->C/C++ Build->Settings,然后如下图
注意最右边,库的名称liba.so变为a,库的路径就写这个库所在的路径。
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下生成动态链接库和使用动态链接库。
作者“菜鸟变身记”