Linux下动态库的创建与使用

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
其实,调用共享库有两种方法这只是其中一种比较简单的隐式调用,还有一种显示调用要生命一个外部的类的实例化函数,然后通过这个函数取得类的构造函数,相对来讲比较麻烦,这里就不说了。




阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭