首页 > 其他 > 详细

cpp 静态动态库操作记录

时间:2021-01-10 22:28:54      阅读:21      评论:0      收藏:0      [点我收藏+]

...这个垃圾的切换...

1, 目录结构

技术分享图片

 

  2,代码

main.cpp

 1 #include<iostream>
 2 #include "comp/com.h"
 3 
 4 
 5 
 6 using namespace std;
 7 
 8 
 9 int main() {
10   int c;
11   c =  add(3,5);
12   cout << c << endl;
13 }

comp/com.cpp

1 using namespace std;
2 
3 int add(int a,int b){
4   int c;
5   c = a + b;
6   return c ;
7 }

comp/com.h

1 int add(int, int);

3,命令行

a) 目录生成动态链接(目录comp 中执行)

  g++ -fPIC -shared -o libcomp.so com.cpp  // 获得 libcomp.so

b) 生成静态链接 (目录comp 中执行)

g++ -c  com.cpp  ==> ar -crv libcomp.a com.o    //得到 libcomp.o

c) 编译主程序(main.cpp目录中执行,动态库和静态库同时存在g++默认选动态链接库)

g++ -o main_static main.cpp -L comp/  -lcomp  //动态库和静态库同时存在时g++默认选择动态库,只有静态库时,选择静态库

g++ -o main_static main.cpp -L comp/  -static -lcomp  //指定选择静态链接库

d) 执行

静态编译的  直接执行输出文件 ./a.out

动态编译的  cp comp/libcomp.so /usr/lib/ -v  ==> ./a.out

 

cpp 静态动态库操作记录

原文:https://www.cnblogs.com/eiguleo/p/14258934.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!