1、环境变量配置
一、临时设置
export PATH=/home/yan/share/usr/local/arm/3.4.1/bin:$PATH
二、当前用户的全局设置
打开~/.bashrc,添加行:
export PATH=/home/yan/share/usr/local/arm/3.4.1/bin:$PATH
使生效
source .bashrc
三、所有用户的全局设置
vim /etc/profile
在里面加入:
export PATH=/home/yan/share/usr/local/arm/3.4.1/bin:$PATH
使生效
source profile
测试当前的环境变量;
测试 echo $PATH
2、动态库链接相关知识
1)linux下制作动态库时链接当前路径而不是系统目录的库
以自己编译双录动态库为例,因为系统自带ffmpeg库存在问题需链接自己编译的ffmpeg库,
配置命令为:
g++ cmanager.cpp DoubleRecord.cpp MBCamera.cpp -g -std=c++11 -fPIC -L. -Wl,-rpath . -shared -o libDesktopRecordSO_shared.so -I/home/zw/Desktop/zw/TestDoubleRecord/include -lz -llzma -lm -lbz2 -lasound -lxcb -lssl -lavformat -lavcodec -lavutil -lx264 -lswresample -lswscale -lzlog
关键在于 -Wl,-rpath . 为程序添加一个运行时库文件搜索路径的命令,在使用gcc编译链接时添加即可
详细可自行百度参考:https://blog.csdn.net/weixin_37139197/article/details/78736291
2)Linux下动态库路径搜索设置
以自己编译双录动态库为例,在外部使用的适合需要将改库的路径配置的配置文件中否则会寻找不到
sudo vi /etc/ld.so.conf 将想要包含的动态库路径放里面
sudo ldconfig 将设置同步到系统上(此时还会创建一些软链接),注意设置之后ldd查看调用动态库寻找的时候最好关闭命令并重新打开
动态库多依赖库(需要使用动态库需要链接的动态库) LD_Library_PATH 使用相对路径 -rpath .属性 libswresample.so.3 => ./libswresample.so.3
3)查看动态库链接库的命令
ldd xx.so