关闭

Linux下动态库的创建与使用

227人阅读 评论(0) 收藏 举报
1  动态库的创建
动态库的创建很容易也有一定的技巧
如:
dynamic,h文件
class zyx
{
private:
        int a;
        int b;
public:
        zyx(int a,int b);
        int sum();
};
dynamic.cpp文件
#include"dynamic.h"
zyx::zyx(int a,int b)
{
        this->a = a;
        this->b = b;
}

int zyx::sum(int a,int b)
{
        return a+b;
}
编写完成以后我们可以编译了
 gcc -fpic -shared -o libdynamic.so dynamic.cpp
-fpic指的是生成与位置无关的文件
-shared指连接成共享库
这样我们的共享库就建立起来了不过我们最好把dynamic.h放到usr/include目录下把dynamic.cpp放到usr/lib下。这样有一个好处。就是我们可以让系统自动寻找他们。

2 共享库的使用
我们同样首先些一段测试的代码
#include<iostream>
#include<dynamic.h>
using namespace std;
int main()
{
        zyx z(1,2);
        cout<<z.sum()<<endl;
        return 0;
}
这样我们就可以编译了
g++ dynamictest.cpp -o dynamictest -ldynamic
如果没有将dynamic.h放到usr/include目录下把dynamic.cpp放到usr/lib下要手动指定include lib文件在哪里
g++ dynamictest.cpp -o dynamictest -I./ -L./ -ldynamic
其实,调用共享库有两种方法这只是其中一种比较简单的隐式调用,还有一种显示调用要生命一个外部的类的实例化函数,然后通过这个函数取得类的构造函数,相对来讲比较麻烦,这里就不说了。




0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1907次
    • 积分:52
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章存档
    最新评论