Linux下动态库的创建与使用

    技术2022-05-11  54

    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)