gcc常用编译选项:

选项

含义
-static 链接静态库,禁止使用动态库
-shared 进行动态库编译,链接动态库
-Ldir 在动态库的搜索路径中增加dir目录
-lname 链接静态库(libname.a)或动态库(libname.so)的库文件
-fPIC(或fpic) 生成使用相对地址无关的目标代码

方法一:

第一步:使用-shared参数生成动态库,gcc -shared -fPIC -o libtest.so test.c     然后把libtest.so复制到/usr/lib64/系统路径下

注意:生成的动态库的名字必须是lib+名字.so,之后可以直接使用-ltest来引用动态库。

第二步:编译main.c,使用libtest.so动态库,gcc -o main main.c -L/usr/lib64/ -ltest

方法二:

在编译main.c,并链接libtest.so的时候,直接指定使用当前目录下的libtest.so文件,

使用命令:gcc -o main main.c ./libtest.so

使用gcc生成动态库及使用动态库的方法相关推荐

  1. dll = MinGW gcc 生成动态链接库 dll 的一些问题汇总

    MinGW gcc 生成动态链接库 dll 的一些问题汇总 https://blog.csdn.net/liyuanbhu/article/details/42612365 网络上关于用 MinGW  ...

  2. linux 中如何将文件粘贴到usr下的lib内,学会在Linux下GCC生成和使用静态库和动态库...

    一.基本概念1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同(主 ...

  3. Linux下Gcc生成和使用静态库和动态库详解

    参考文章:http://blog.chinaunix.net/uid-23592843-id-223539.html 一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库 ...

  4. Linux下GCC生成和使用静态库和动态库详解(二)

    2.1准备好测试代码hello.h.hello.c和main.c: hello.h(见程序1)为该函数库的头文件. hello.c(见程序2)是函数库的源程序,其中包含公用函数hello,该函数将在屏 ...

  5. Linux下Gcc生成和使用静态库和动态库详解(转)

    一.基本概念 1.1什么是库 在windows平台和linux平台下都大量存在着库. 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行. 由于windows和linux的平台不同( ...

  6. 用 gcc生成静态库和动态库以及静态库和动态库的使用

    文章目录 一.linux下gcc生成静态库和动态库以及库文件的使用 1.准备过程 2.静态库的创建及使用 (1)创建静态库 (2)程序中使用静态库 3.动态库的创建及使用 (1)创建动态库 (2)程序 ...

  7. gcc生成静态库.a和动态库.a以及Ubuntu18.04下opencv3.4.11安装及示例

    目录 一.用gcc生成静态库和动态库 (一)hello示例使用库 1.准备过程 2.静态库使用 3.动态库的使用 4.静态库与动态库比较 (二)示例1使用库 二.opencv安装以及使用 (一)认识o ...

  8. gcc生成静态库和动态库,以及OpenCV3.4.11的安装和实例

    文章目录 一.用gcc生成静态库和动态库 (1).hello使用库实例 1.创建目录并编写hello代码 2.gcc编译得到.o文件 3.静态库的使用 4.动态库的使用 5.静态库与动态库的对比 (2 ...

  9. 用gcc生成静态库和动态库和使用opencv库编写打开摄像头压缩视频

    文章目录 一.用gcc生成静态库和动态库 1.编辑生成程序hello.h.hello.c.main.c 2.将hello.c生成.o文件 3.使用静态库 4.动态库的使用 二.a与.so库文件的生成与 ...

  10. GCC生成静态库和动态库

    目录 1)阅读.理解和学习材料"用gcc生成静态库和动态库.pdf"和"静态库.a与.so库文件的生成与使用.pdf",请在Linux系统(Ubuntu)下如实 ...

最新文章

  1. Git停止跟踪rm -r --cached与ignore区别
  2. 使用Xcode 7 beta免费真机调试iOS应用程序
  3. Java——获取和设置多线程的名称
  4. fck java_FCkjava三种调用方法
  5. javascript小技巧JavaScript[对象.属性]集锦
  6. Spring Boot教程
  7. php执行跟踪_PHP 代码调试跟踪工具 Ytrace
  8. linux锁定系统时间设置,Linux时间设置系统时间、硬件时间和时间服务
  9. wp友情链接php代码,为wordpress增加友情链接内页
  10. libsvm 的使用
  11. 图论最短路及生成树(Prim,Djikstra,Spfa,Bellan-ford,kruskal,topsort)
  12. python 基本数据类型
  13. Julia : 数组(矩阵)的条件过滤
  14. java选择题库_java题库1-单项选择题.doc
  15. 在linaro中安装opencv
  16. Linux——缺少ld-linux.so.2,lbiz.so.1库文件
  17. Amazon,我们完全不能接受 — 因此我们必须变更 Elastic 许可协议
  18. Axure 9 修改默认字体
  19. 详细了解 Linkerd 2.10 基础功能,一起步入 Service Mesh 微服务架构时代
  20. 【Python网络编程和并发-多线程共享数据混乱引出同步锁】

热门文章

  1. centos 发送匿名邮件
  2. .net C# asp.net SMTP 匿名发邮件完整解决方案,有源码.
  3. linux常用的引导管理器,Linux引导管理器GRUB、GRUB 2和LILO简介
  4. Docker容器实现跨主机文件共享(NFS服务器)
  5. EXCEL中行列转换
  6. C++类的实现 奥特曼打怪兽
  7. win10设置计算机关机时间,win10系统怎样设置定时关机 win10有定时关机设置吗
  8. 2021刷百度统计关键词的灰产嫌疑人徐某被抓
  9. 英文缩写400个速查
  10. u盘安装系统win2019服务器系统,U盘启动装WIN10系统教程,U盘安装WIN2019方法,UltraISO将Windows server 2016/2019安装盘ISO写入U盘进行安装...