Linux学习笔记-动态库的生成
库分为两种:(1)共享库 Shared Library (2)静态库 Static Library通常共享库也称为动态库。 使用g++命令来生成动态库编译,生成.o文件 (编译选项 ‐fPIC )g++ ‐c ‐fPIC example.cpp ‐o example.o链接,生成目标 .so文件 ( 链接选项 ‐shared)g++ ‐shared example.o ‐o l...
·
库分为两种:
(1)共享库 Shared Library
(2)静态库 Static Library
通常共享库也称为动态库。
使用g++命令来生成动态库编译,生成.o文件 (编译选项 ‐fPIC )
g++ ‐c ‐fPIC example.cpp ‐o example.o
链接,生成目标 .so文件 ( 链接选项 ‐shared)
g++ ‐shared example.o ‐o libexample.so
(PIC:Position Independent Code位置无关代码)
如下源码:
example.h
void print(const int startPos,const int endPos);
example.cpp
#include "example.h"
#include <stdio.h>
void print(const int startPos,const int endPos){
for(int i=startPos;i<endPos;i++){
printf("The value is %d",i);
}
}
生成.o与.so文件如下图:
linux下动态库的规范命名:
libxxx.so
前缀 lib
后缀 .so
其中 xxx是库的名称
例如 , libexample.so
使用nm命令查看库中的符号
nm libexample.so
可以看见里面有一个printii,其中print为函数名,ii为两个int型变量
更多推荐
已为社区贡献22条内容
所有评论(0)