首页 > 系统相关 >Linux编译静态库、动态库

Linux编译静态库、动态库

时间:2023-06-17 22:11:08浏览次数:28  
标签:静态 ++ 编译 so Linux cpp main

 

一、Linux上编译静态库

# 1.编译成.o文件
gcc -c a.c b.c

// 2.编译成静态库
ar -r liba.a a.o b.o

// 3.链接成可执行文件
gcc main.c -o main -L[库所在路径] -l[库名] 
g++ main.cpp -o main -L./ -la

 

 

二、Linux上编译动态库

// 1.把cpp封装成so库
g++ -fPIC -shared -o libxx.so xxx.cpp
g++ -fPIC -shared -o libtest.so test.cpp

// 2.编译
g++ main.cpp -o main -L[库路径] -l[库名]
g++ main.cpp -o main -L./ -ltest

其他程序调用so库,编译时报错,找不到so库解决方法:

方法一:

  把生成的so库拷贝到 /usr/lib 或者 /usr/lib64 文件夹中

 

方法二:

  设置临时环境

LD_LIBRARY_PATH=./
export LD_LIBRARY_PATH

 

标签:静态,++,编译,so,Linux,cpp,main
From: https://www.cnblogs.com/shiyixirui/p/17488353.html

相关文章

  • Linux启动时间优化-内核和用户空间启动优化实践
    启动时间的优化,分为两大部分,分别是内核部分和用户空间两大部分。从内核timestamp0.000000作为内核启动起点,到free_initmem()输出"Freeinginitmemory"作为内核启动的终点。借助于bootgraph.py对内核的kmsg进行分析,输出bootgraph.html和initcall耗时csv文件。在紧接着free_i......
  • 爆肝万字带你超级详细全面了解Linux命令大全
    ......
  • Centos7 linux定时任务
    1、参考CentOS7定时任务crontab入门Centos利用crontab定时执行任务及配置方法2、crontab-l#查看当前用户定时任务crontab-e#编辑当前用户定时任务#prodbackupdatabase02***cd/data/xxx&&/usr/bin/shxxx_backup.sh#prodautoupdatemanageco......
  • linux挂载新磁盘
    linux挂载新磁盘1.老系统查看1.1查看磁盘挂载情况#df-hFilesystemSizeUsedAvailUse%Mountedonudev3.8G03.8G0%/devtmpfs770M1.3M769M1%/run/dev/vda159G48G9.0G85%/tmpfs3.8G03.8G0%/dev/shmtmpfs5.0M05.0M0%/run/locktmpfs3.8G0......
  • Linux操作系统——主观题
    第一章——虚拟机UbuntuLinux'在安装系统时,应该建立几个分区?每个分区的大小大致是多少?建立四个分区,第一个主分区/dev/sad1512MB,第二个逻辑分区/dev/sda510240MB,第三个交换分区/dev/sda61024MB,第四个个人文件分区/dev/sda79696MB。在一台主机上只能安装一个VMware虚拟机软......
  • Linux下常用命令
    scp用于上传,下载,两台服务器文件复制上传文件到服务器:scpusername@servername:/path/filename/tmp/local_destination从服务器上下载文件到本地:scp/path/local_filenameusername@servername:/path从服务器上下载整个目录到本地:scp-rusername@servername:remote_dir/......
  • Study mission - Linux related
    学习任务:Linuxrelated1.linux文件系统结构,各个常用系统目录的含义/binbin是Binaries(二进制文件)的缩写,这个目录存放着最经常使用的命令。/boot这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。/devdev是Device(设备)的缩写,......
  • 《编译原理》实验四:自下而上的语法分析(SLR分析法)
    本实验采用SLR分析法,对PL/0语言的算术运算进行语法分析。本程序由我个人独立完成,代码为C++98,因此可能较丑陋,且不能保证完全正确,还请见谅 ( ̄□ ̄;)一.设计思想1.文法因实验二、三中的文法均不是LR(0)文法,所以本次实验采用了实验三中的文法进行SLR分析。(1)EBNF<表达式>::=[+|-]<......
  • linux环境安装docker
    卸载Dockeryumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate......
  • Deepin Linux如何安装Terminus终端
    Terminus是一款基于web技术的终端,支持windows、Linux、MacOS系统。可以为终端定制主题和各种配色方案。环境Deepin15.11安装TerminusTerminus的github仓库:https://github.com/Eugeny/terminus/releases官网提供了下载地址(https://www.termius.com/),它的下载速度比github快很多但是......