linux下CC++编程导⼊第三⽅库⽂件的⼏种⽅法
linux下C/C++编程导⼊第三⽅库⽂件的⼏种⽅法
参考资料:
1. 添加编译选项
在编译的时候添加库路径以及头⽂件路径选项,如
-I 头⽂件所在的路径
-L 库⽂件所在的路径(包括静态库和动态库)
-l 指定库⽂件
g++ -c main.c -I./inc -L./lib
2. 修改系统环境变量
将头⽂件路径和库⽂件路径添加到指定的系统环境变量中去,具体如下:
使⽤ gcc 编译时将 头⽂件 路径添加到 C_INCLUDE_PATH 系统环境变量中;
使⽤ g++ 编译时将 头⽂件 路径添加到 CPLUS_INCLUDE_PATH 系统环境变量中;
将 动态连接库 路径添加到 LD_LIBRARY_PATH 系统环境变量中;
将 静态库 路径添加到 LIBRARY_PATH 系统变量中。
改变系统变量主要有两种形式,⼀种是临时改变,另⼀种是永久改变。
临时改变系统变量只需要使⽤ export 命令,重启终端后将恢复⾄先前状态,如
export C_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/myinclude
⽽永久改变⼜可分为仅改变当前⽤户和改变所有⽤户:
仅改变当前⽤户的系统环境时,只需将上述的 export 语句添加到 ~/.bashrc 或者 ~/.bash_profile ⽂件内容后⾯,重启终端即可。
要改变所有⽤户的环境变量时,需将上述的的 export 语句添加到 /etc/profile ⽂件内容,并需要重启计算机。
3. 使⽤ pkg-config 命令
部分第三⽅库在安装完成后会⾃动⽣成⼀个 *.pc 的配置⽂件⽤来存放第三⽅库安装的路径,包括头⽂件路径以及库⽂件路径,可以使⽤pkg-config 命令查看,如:
pkg-config --cflags --libs protobuf
>>> -pthread -I/usr/local/include -L/usr/local/lib -lprotobuf -pthread
其中:
–cflags 返回头⽂件⽬录
–libs 返回库所在的⽬录以及库参数
protobuf 为第三⽅库名
在编译包含这些库的代码时,需要执⾏上述命令获取返回结果,⽐如:
g++-c main.c`pkg-config--cflags--libs protobuf`
其中,`符号为数字1键左边的那键。
对于某些三⽅库没有*.pc⽂件,我们也可以⾃⼰写⼀个配置⽂件。*.pc⽂件的路径存放在 PKG_CONFIG_PATH 系统变量下,使⽤ echo 命令可查看其变量。
echo $PKG_CONFIG_PATH
系统变量path修改了怎么恢复>>> :/usr/local/lib/pkgconfig
进⼊该路径,我们可以看到 *.pc 的配置⽂件,⽤⽂本编辑器打开其中⼀个如protobuf.pc,其内容如下:
prefix=/usr/local
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include
Name: Protocol Buffers
Description: Google's Data Interchange Format
Version: 3.5.2
Libs: -L${libdir} -lprotobuf -pthread
Libs.private: -lz
Cflags: -I${includedir} -pthread
Conflicts: protobuf-lite
其中:
libdir 为库所在⽬录
includedir 为头⽂件所在⽬录
Libs 为调⽤参数,其内容为库所在的⽬录以及库参数
cflags 为调⽤参数,其内容为头⽂件⽬录
因此,我们可以照着上⾯的形式⾃⼰写⼀个*.pc⽂件放到 PKG_CONFIG_PATH 所指定的⽬录下。
以上内容已同步⾄。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论