pkg-config可以为你提供一些依赖,如头文件,还有库文件。他原来是为Linux而设计的,目前在windows、Mac OS 也普遍应用。 用法为:
gcc/g++ test.c/test.cpp `pkg-config --cflags --libs opencv`也可以多个一起使用如:opencv与SDL一起
gcc/g++ test.c/test.cpp `pkg-config --cflags --libs opencv sdl2`需要注意⚠️`是tab键上面的点,而不是与双引号一起的那个’。 pkg-config的使用是需要扩展名为.pc的文件支持的,例如opencv的就是opencv.pc,sdl2的就是sdl2.pc。在MacOS系统中,这些文件一般存放在/usr/local/lib/pkgconfig或者 /usr/lib/pkgconfig/。这个路径用系统变量PKG_CONFIG_PATH指定,通过命令cat $PKG_CONFIG_PATH,我们可以知道他所指向的路径。 那么*.pc文件里面又是些什么呢?以sdl.pc为例子,我们看一下:
# sdl pkg-config source file prefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include Name: sdl2 Description: Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. Version: 2.0.4 Requires: Conflicts: Libs: -L${libdir} -lSDL2 Libs.private: -lSDL2 -lm -liconv -Wl,-framework,ForceFeedback -lobjc -Wl,-framework,CoreVideo -Wl,-framework,Cocoa -Wl,-framework,Carbon -Wl,-framework,IOKit -Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox -Wl,-framework,AudioUnit Cflags: -I${includedir}/SDL2 -D_THREAD_SAFE运行:
pkg-config –cflags –libs sdl2
输出为:
-D_THREAD_SAFE -I/usr/local/include/SDL2 -L/usr/local/lib -lSDL2实际上就是,提供我们编译代码的时候需要的一些信息。