zoukankan      html  css  js  c++  java
  • cpp 静态动态库操作记录

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

    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

  • 相关阅读:
    ceph pg pool
    linux 开放访问端口
    授予普通用户root权限
    ajax返回json中文是问号
    elasticseach 安装head
    python学习之路8
    JS正则表达式学习
    python学习之路7 前端学习4 jQuery 学习
    python学习之路7 前端学习3
    python 学习总结6 前端学习2
  • 原文地址:https://www.cnblogs.com/eiguleo/p/14258934.html
Copyright © 2011-2022 走看看