linux下Eclipse进行C编程时动态链接库的生成和使用

来源:岁月联盟 编辑:exp 时间:2011-09-22

     前面的博客中讲了在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下生成动态链接库和使用动态链接库。

作者“菜鸟变身记”