Linux中C++编译、使用动态链接库
2018-02-07 15:44
323 查看
Linux中so为共享动态链接库。下面我们通过一个四则运算的实例来学习动态链接库。
首先是头文件:
然后是四则运算的实现:
接着是四则运算的使用:
请注意,这个使用四则运算的
这个命令的意思是将当前目录加入动态链接库搜索路径,否则我们需要将生成的动态链接库加入
这里请注意动态链接库的命名格式为:
可看到输出:
大功告成。
原文地址
首先是头文件:
my_math.h:
/** * my_math.h */ // a + b int Add(int a, int b); // a - b int Minus(int a, int b); // a * b int Multiply(int a, int b); // a / b float Division(int a, int b);
然后是四则运算的实现:
/** * my_math.cpp */ #include "my_math.h" // a + b int Add(int a, int b) { return a + b; } // a - b int Minus(int a, int b) { return a - b; } // a * b int Multiply(int a, int b) { return a * b; } // a / b float Division(int a, int b) { return (float)a / (float)b; }
接着是四则运算的使用:
/** * test.cpp */ #include <iostream> #include "my_math.h" using namespace std; int main() { int a = 10; int b = 3; cout << "add: " << Add(a, b) << endl; cout << "minus: " << Minus(a, b) << endl; cout << "multiply " << Multiply(a, b) << endl; cout << "division: " << Division(a, b) << endl; }
请注意,这个使用四则运算的
test.py中只使用了头文件,现在还运行不了,我们需要通过动态链接库来给
test.py提供四则运算的实现,也就是说,我们需要把
my_math.cpp编译成动态链接库。
将当前文件夹加入动态链接库搜索路径
export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
这个命令的意思是将当前目录加入动态链接库搜索路径,否则我们需要将生成的动态链接库加入
/usr/lib。
编译my_math.cpp
g++ -c my_math.cpp -o my_math.o
将my_math编译成动态库
g++ -shared my_math.o -o libmy_math.so
这里请注意动态链接库的命名格式为:
lib<自命名>.so
编译 test.cpp
g++ test.cpp -o ./test -L. -lmy_math
-L<Path>参数指定链接库的路径,
-l<自命名>指定具体动态链接库名称。
运行test
./test
可看到输出:
add: 13 minus: 7 multiply 30 division: 3.33333
大功告成。
原文地址
相关文章推荐
- LINUX下简单的编译和使用动态链接库[compile .so use c++ in linux]
- LINUX下简单的编译和使用动态链接库[compile .so use c++ in linux]
- LINUX下简单的编译和使用动态链接库[compile .so use c++ in linux]
- LINUX下简单的编译和使用动态链接库[compile .so use c++ in linux]
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- linux下使用c++访问mysql数据库编译问题
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- [转]Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Linux环境下使用eclipse开发C++动态链接库程序
- Linux下使用Eclipse编译C/C++代码时遇到问题的说明
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境
- Ubuntu(Linux)使用Eclipse搭建C/C++编译环境