关于第三方库在Windows和Linux上的使用方法

一、Windows上库的使用

在Windows上要想使用一个第三方库,首先需要配置三个内容(以Visual Studio为例):

配置项配置方法
动态链接库(*.dll)在path环境变量后追加动态链接的位置
静态链接库(*.lib)

                         VS->项目属性->VC++目录->库目录,在此添加上静态库的位置

                               VS->项目属性->链接器->输入,在此添加上所有库的名字

头文件(*.h) VS->项目属性->VC++目录->包含目录,在此添加上所有头文件的位置
(可选项)程序数据库文件(*.pdb)在编译完库之后,形成于dll同文件夹处,无需额外操作,只要存在即可

注:*.pdb文件用于在调试时使用,可帮助用户跟踪到库的源码处。

        清理解决方案的时候*.pdb文件会被清除掉。

二、Linux上库的使用

当安装一个库时(例如从RPMdeb或其他二进制包管理系统),会包括一个后缀名为pc的文件,它会放入某个文件夹下(依赖于你的系统设置,其父文件夹一般名为"pkgconfig")。

该*.pc可以帮助我们在编译程序的时候自动协助查找头文件及库文件的位置,使用方式如下(以opencv为例):

g++ main.cpp -o main `pkg-config --cflags --libs opencv`

 其中:--cflags代指头文件的位置,--libs代指库文件的位置。

若有多个第三方需要添加使用的时候,可以直接加入即可(以png的库为例):

g++ main.cpp -o main `pkg-config --cflags --libs opencv libpng`

 补充:

 1. pkg-config可单独做命令使用,使用方式如下:

pkg-config --cflags --libs opencv          #此命令可帮助查询是否有opencv.pc存在

2. 在使用上述命令的时候,pkg-config通过环境变量PKG_CONFIG_PATH来查询opencv.pc的位置。若在opencv.pc存在的情况下,上述命令不可用,即可通过向/etc/bash.bashrc等启动文件中追加opencv.pc位置信息的途径,来帮助pkg-config命令功能的实现。格式如下:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig    #请以自己系统中opencv.pc的实际位置为准
export PKG_CONFIG_PATH

或以命令的方式(重启后失效):

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

3. 以下以linpng为例展示libpng.pc的文件格式。从文件中我们就可以看出pkg-config命令是怎么一步步地找到库文件和头文件的位置的。

prefix=/usr
exec_prefix=${prefix}
libdir=${prefix}/lib/x86_64-linux-gnu
includedir=${prefix}/include/libpng12

Name: libpng
Description: Loads and saves PNG files
Version: 1.2.50
Libs: -L${libdir} -lpng12    #-L为gcc命令的编译选项,用于指明静态库的位置
Libs.private: -lz -lm 
Cflags: -I${includedir}      #-I为gcc命令的编译选项,用于指明头文件的位置

三、参考资料

1. pkg-config的一些用法

2. pkg-config 维基百科

3. linux上安装libpng库以及zlib库

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值