系列文章目录
前言
侵联删懂?
开始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目录下
对比