接下来就是应用 pkg-config 的结果了,在 CMake 上下文中可以使用PkgConfig::${prefix}来消费结果,直接作为 target_link_libraries 的参数即可: target_link_libraries(${PROJECT_NAME} PkgConfig::my_deps) 如果你的 CMake 版本小于 3.6,也可以使用一下变量: <prefix>_LDFLAGS <prefix>_CFLAGS 关于在 CMake ...
通常编译工具如configure, makefile等可以参考使用pkg-config 即系统库, 头文件会自动找到, 而特定, 自定义链接的库需要通过pkg-config去找到
这样设置之后,使用Glib库的其它程序或库在编译的时候pkg-config就知道首先要到/opt/gtk/lib/pkgconfig这个目录中去寻找glib-2.0.pc了(GTK+和其它的依赖库的.pc文件也将拷贝到这里,也会首先到这里搜索它们对应的.pc文件)。之后,通过pkg-config就可以把其中库的编译和连接参数提取出来供程序在编译和连接时使用。 另...
1 第一步首先需要知道pkg-config有什么用,在什么时候用的着,pkg-config主要是将第三方库的头文件和库文件位置指出来,然后传给编译器使用,一般在是linux或者unix开始编译和寻找链接库时用到,如下图所示:2 第二步pkg-config通过“pkg-config 第三方库的名称”来使用,又分为"--libs","--cdlags","--...
[工程构建] 使用pkg-config协助工程搭建 前言: 在进行工程构建的时候,往往需要指定头文件搜索路径,库文件路径,库文件名等等一系列编译链接需要的参数。我们可以记住这些路径和名称,但是如果这些值有变更,那么就需要手动修改makefile或者cmake文件以进行调整。
用pkg-config就可以解决这个问题,使用很简单: g++ DisplayImage.cpp $(pkg-config--cflags --libs opencv4) 其实就是用pkg-config --cflags --libs opencv4这个命令代替了-I -L -lxxx.so等指令。 其实构建OpenCV项目还有一种方法是cmake,关于cmake的使用方法,我们以后再介绍。
1、一个使用了glib库的简单程序hello.c,代码如下: 代码语言:javascript 复制 //hello.c#include<glib.h>intmain(int argc,char*argv[]){g_print("welcome to glib programming world!\n");return0;} 打开终端,输入gcc -o hello hello.c `pkg-config --cflags --libs glib-2.0`(注意:此处不是单引号,...
可以把mymath.pc拷贝到系统查找的几个目录或者将mymath.pc文件所在的目录添加到环境变量PKG_CONFIG_PATH中,此处使用第二种办法: # 命令行中执行,/XXX需要替换成实际的目录 PKG_CONFIG_PATH=/XXX/mymath export PKG_CONFIG_PATH 这样就可以使用pkg-config命令来获取mymath库的信息了: ...
1、一个使用了glib库的简单程序hello.c,代码如下: //hello.c#include<glib.h>intmain(intargc,char*argv[]){g_print("welcome to glib programming world!\n");return0;} image.gif 打开终端,输入gcc -o hello hello.cpkg-config --cflags --libs glib-2.0(注意:此处不是单引号,而是键盘左边数字键'1...
当你在项目中使用外部库时,通常需要知道这些库的头文件(header files)和库文件(library files)的位置。pkg-config通过读取特定的.pc(Package Config)文件来提供这些信息。 工作流程 查询库信息: 当你执行pkg-config命令时,它首先会在预定义的目录(通常是/usr/lib/pkgconfig/或/usr/share/pkgconfig/)中查找与指定...