系列文章目录
前言
侵联删懂?
开始Linux下编程
CTRL+L == clear
gcc first.c -E -o first.i
-E代表 -o 生成的目标文件
gcc first.i -S -o first.s
gcc first.c -o first
.run插件 ctrl+alt+n
or
gcc first.c -S
gcc first.c -E
gcc first.c -c
gcc test.c -o destfile
gcc -o destfile test.c
gcc test.c -o destfile -D DEBUG
gcc test.c =o destfile -Wall





静态库


库名称和库文件的名字不一样
制作
gcc add.c mul.c -c 或者 gcc -c add.c mul.c
生成add.o mul.o文件
ar rcs libxxx.a all.o mul.o
使用

gcc mian.c -o app -I ./include -l ku -L ./lib
动态库(共享库)


gcc main.c -o I ./include -L ./lib -l ku
./main 报错:动态库加载失败
head.h头文件中包含的库文件中函数、类等的定义
env可查看系统环境
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/动态库文件的绝对路径
echo $LD_LIBRARY_PATH
上述方法是临时的,当重启中断后失效
用户及别
cd ~
vim .bashrc
在该文件最后export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/动态库文件的绝对路径
. .bashrc 或者 source .bash使之生效
系统级别
sudo vim /etc/profile
在该文件最后export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/动态库文件的绝对路径
source /etc/profile 使文件生效
echo $LD_LIBRARY_PATH查看是否修改成功
ldd main 列出依赖的动态库,查看是否找到
通过 /etc/ld.so.cache 解决
vim /etc/ld.so.conf 将动态库文件的绝对路径添加进去
sudo ldconfig 更新文件
最后一种解决方法:(不推荐)
将动态库文件放入/lib 或 /usr/lib目录下
对比






本文详细介绍了如何在Linux环境下进行编程,包括如何制作和使用静态库与动态库。讲解了静态库的生成过程,如通过gcc编译源文件得到目标文件,再用ar命令创建库。对于动态库,阐述了如何编译链接,并解决了动态库加载失败的问题,提到了修改LD_LIBRARY_PATH环境变量的方法,包括临时和永久设置,以及通过编辑/etc/ld.so.conf和运行ldconfig命令来确保动态库被系统找到。最后对比了静态库和动态库的使用场景和特点。
1595

被折叠的 条评论
为什么被折叠?



