CentOS 制作C++动态链接库
来源:互联网 发布:windows server版本 编辑:程序博客网 时间:2024/06/04 23:31
1. 前言
c++制作动态链接库,不复杂,在此记录下来。
下面:编写用一个类,然后做成一个动态库。
以后包含头文件,直接调用接口即可。不用再将.cpp源码文件也放进来了。
2. 代码
-----------------------------------------------------
dynamicmath.h文件 :
-----------------------------------------------------
#ifndef DYNAMICMATH_H#define DYNAMICMATH_H#include <iostream>class DynamicMath{public: DynamicMath(); ~DynamicMath(); static double add(double x, double y); static double sub(double x, double y); static double mul(double x, double y); static double div(double x, double y); void print();};#endif // DYNAMICMATH_H
-----------------------------------------------------
dynamicmath.cpp文件-----------------------------------------------------
#include "dynamicmath.h"DynamicMath::DynamicMath(){}DynamicMath::~DynamicMath(){}double DynamicMath::add(double x, double y){ return x + y;}double DynamicMath::sub(double x, double y){ return x - y;}double DynamicMath::mul(double x, double y){ return x * y;}double DynamicMath::div(double x, double y){ if (y > -0.000001 && y < 0.000001) { return 0; } else { return x/y; }}void DynamicMath::print(){ std::cout << "Hello World" << std::endl;}
3. 编译
指令如下:
# g++ -fPIC -shared -o libdynmath.so dynamicmath.cpp
效果如图:
生成了libdynmath.so ,这就是我们要的动态链接库!
4. 使用动态链接库
测试用例:
-----------------------------------------------------
test.cpp文件-----------------------------------------------------
#include "dynamicmath.h"#include <iostream>int main() { double x = 10; double y = 2; std::cout << DynamicMath::add(x, y) << std::endl; std::cout << DynamicMath::sub(x, y) << std::endl; std::cout << DynamicMath::mul(x, y) << std::endl; std::cout << DynamicMath::div(x, y) << std::endl; DynamicMath dyn; dyn.print(); return 0; }
执行命令:
# g++ test.cpp -L../lib -ldynmath
生成a.out,然后执行这个文件
# ./a.out
发现报错了,大意是无法打开动态库,找不到库文件。
【解决方案】把这个库文件,拷贝到/usr/lib64文件夹下
# cp libdynmath.so /usr/lib64/
此时再执行文件,发现成功了,结果如图:
# ./a.out
5. 参考文献
[1] http://www.cnblogs.com/skynet/p/3372855.html
------------
- CentOS 制作C++动态链接库
- 动态链接库的制作
- 制作动态链接库DLL
- Linux制作动态链接库
- Centos加载动态链接库
- c动态链接库
- 动态链接库的制作与调用
- vc下制作win32动态链接库
- Delphi 制作 .dll 动态链接库
- Linux动态链接库的制作
- 动态链接库的制作与调用
- C++制作动态链接库dll
- 制作动态链接库需要注意的
- 易语言动态链接库制作教程
- VS2008如何制作动态链接库
- VS2008如何制作动态链接库
- C++制作动态链接库dll
- iOS中制作动态链接库Framework
- Composer 安装
- 如何在tecplot中把两条曲线画在一张图上
- cocos2dx中zip包读取解压使用
- 正则学习
- jquery ajax 请求小技巧
- CentOS 制作C++动态链接库
- Fio IO性能测试工具介绍
- git配置文件config用户名和邮箱的设置和查看
- 算法导论 二项堆
- Linux下gdb显示intel和at&t汇编
- 删除系统服务:出现“[SC] OpenService 失败 5:拒绝访问”的问题
- 随笔分类
- mysql乐观锁总结和实践
- 十分钟搞定pandas!