使用pkg-config获取需要的gcc -I(大写i) -L -l(小写l)参数
通常安装一个大型库后,你可能会不知道编译时该链接哪个库,又或者库和头文件在哪里,freedesktop提供了一个小工具pkg-config用来帮助用户理清这些问题。
$ apt install pkg-config
该软件的最常用的两个参数是--cflags和--libs,前者用来输出头文件目录(即-I),后者用来输出链接库,即(-L和-l)
比如我们现在要链接opencv库,首先是--cflags
yachen@szmint19:~$ pkg-config --cflags opencv
-I/usr/include/opencv
可以看到,直接输出了opencv头文件的目录
再是--libs
yachen@szmint19:~$ pkg-config --libs opencv
-lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_datasets -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_line_descriptor -lopencv_optflow -lopencv_video -lopencv_plot -lopencv_reg -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_rgbd -lopencv_viz -lopencv_surface_matching -lopencv_text -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_xobjdetect -lopencv_objdetect -lopencv_ml -lopencv_xphoto -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_photo -lopencv_imgproc -lopencv_core
可以看到,这个命令将opencv所有链接库都输出出来了。
这样,我们编译时就可以不用到处找要链接的到底是哪个库了,直接
$ gcc a.cpp -o a -$(pkg-config --cflags --libs opencv)
便可以直接编译一个依赖opencv的程序
发表于 2018-10-22 12:58:00 并被添加「」标签,阅读量: 1020 。
此处评论已关闭