首页 > 系统相关 >【Linux系统编程】静态库与动态库

【Linux系统编程】静态库与动态库

时间:2024-03-16 11:11:31浏览次数:22  
标签:文件 gcc 静态 编程 filename 源文件 库名 Linux 动态

静态库与动态库

静态库的制作和使用

  1. 编写库文件源代码和头文件。
  2. 将所有需要做成库的源文件生成目标文件:gcc -c {filename}.c -o {filename}.o
  3. 用 ar 工具将要做成库的目标文件打包:ar rcs lib{库名}.a {filename-1}.o ... {filename-n}.o
  4. 将使用库的源文件与库文件一起编译:gcc {主文件}.c lib{库名}.a -o

动态库的制作和使用

  1. 编写库文件源代码和头文件。
  2. 生成位置无关的目标文件:gcc -c {filename}.c -o {filename}.o -fPIC
  3. 制作动态库:gcc -shared -o lib{库名}.so {filename-1}.o ... {filename-n}.o
  4. 编译主文件的源文件:gcc {filename}.c -o {filename}.o -l {库名} -L {库文件路径}
  5. 为了让程序在运行的时候能找到动态库需要进行以下处理:
    • 修改环境变量 LD_LIBRARY_PATH,将库文件的路径加入
    • 或者修改 /etc/ld.so.conf 配置文件,将库文件的路径加入,并使用 ldconfig -v 使配置文件生效

标签:文件,gcc,静态,编程,filename,源文件,库名,Linux,动态
From: https://www.cnblogs.com/yangxuanzhi/p/18076828

相关文章

  • 滴水逆向笔记系列-PE总结3-28.数据目录-29.静态链接库-动态链接库-30.导出表
    第二十八节课数据目录1.数据目录是什么可选PE头最后一个成员,就是数据目录,一共有16个分别是:导出表的数据目录、导入表的数据目录、资源表的数据目录、异常信息表的数据目录、安全证书表的数据目录、重定位表的数据目录、调试信息表的数据目录、版权所有表的数据目录、全局指针......
  • 配置WindowsSSH免密登录Linux
    一、环境准备虚拟机里的Centos8一台Windows11二、Windows密钥和公钥生成win+R调出运行输入框输入cmd,回车-打开终端管理器输入:ssh-keygen-trsa回车ssh-keygen-trsa提示存放路径信息(记住这个路径,后面要找公钥),回车提示输入密码(不用设置,直接回车),提示确认再次回车,回车......
  • 百度 Linux 运维工程师面试真题
    百度Linux运维工程师面试真题百度面了好久了,两个月了,估计都快成馊面了,一跟面条在走边边一不小心掉进了大海,于是就有了汤面_经历非技术总结就两句话,幸运的是在朋友的帮助下顺利通过笔试,还认识了一帮super牛B的人,不幸的是最终还是由于主观客观擦肩而过~~我投的是lin......
  • Linux的ping指令连不上外网解决
    这个问题真的困扰我了很久,我在电脑前四五个小时,查资料,腰酸背痛,终于解决了对于Linux虚拟机连接不上外网,基本上分为两个问题:1.网络不可达2.服务器未知对于这两种,我都遇到了,我在之间改来改去,终于算是从根源解决首先我们打开本机的win+r键,然后搜索ncpa.cpl先查看vmment8是否......
  • 静态资源加速cdn
    阿里云CDN产品https://www.aliyun.com/product/cdn什么是cdnhttps协议的证书部署让你的网站更安全为什么需要cdn优势:如果你在经营一家网站,那你应该知道几点因素是你制胜的关键:内容有吸引力访问速度快支持频繁的用户互动可以在各处浏览无障碍从网站的运营商业角度分......
  • 实验1_C语言输入输出和简单程序应用编程
    task11#include<stdio.h>2#include<stdlib.h>3intmain()4{56printf("o\to\n");7printf("<H>\t<H>\n");8printf("II\tII\n");910system("pa......
  • 【备忘录】启用电脑的串口,使用串口连接linux系统
    前言串口:rs232-DB9;串口介绍:一、市场标准的rs232DB9串口插头,针脚介绍。 二、市面常见全交叉线缆接线图,至于两头是公头还是母头不重要,只要知道是DB9全交叉串口线缆即可,需要什么插头就搞什么插头。     正文(下述线缆、接口,全部依照上述的标准)第一种情况:本地计算机......
  • Linux命令:查看系统信息
    命令汇总unamefilehostnamectllshwlscpucat/proc/目录下的文件topdfcat/etc/目录下的文件pslastidwhowhoamiifconfignetstatiptablesfirewall-cmd 内核信息#uname-a#uname-srm#uname-m#uname-r#file/boot/vmlinuz-$(uname-r) #hostn......
  • 网络编程3 端口复用-多路IO转接select
    网络编程3端口复用-多路IO转接TCP状态转换图端口复用防止服务器重启时之前绑定的端口还未释放或者程序突然退出而系统没有释放端口。这种情况下如果设定了端口复用,则新启动的服务器进程可以直接绑定端口。如果没有设定端口复用,绑定会失败,提示ADDR已经在使用中。解决端口复用......
  • Linux免编译安装Nginx保姆级教程_Mark一下
    一、环境准备1.Nginx依赖于gcc的编译环境,所以,需要安装编译环境来使Nginx能够编译起来。yuminstallgcc-c++2.Nginx的http模块需要使用pcre来解析正则表达式,需要安装pcre。yuminstall-ypcrepcre-devel3.安装依赖的解压包。yuminstall-yzlibzlib......