g++ -g -o video_demo video_demo.cpp src/yolo-fastestv2.cpp -I
src/include -I include/ncnn lib/libncnn.apkg-config --libs --cflags opencv
-fopenmp
g++ 编译 多个 .cpp
文件, 后面 按照顺序分别指定 -I 头文件目录, 生成 一个可执行文件 video_demo
上述命令的 参数介绍
-o
编译选项来为将产生的可执行文件用指定的文件名;-g
选项告诉 GCC 产生能被 GNU 调试器使用的调试信息以便调试你的程序
除此之外,-pg
选项告诉 GCC 在编译好的程序里加入额外的代码。运行程序时, 产生 gprof 用的剖析信息以显示你的程序的耗时情况。-I
参数是用来指定头文件目录(.h文件), 默认路径/usr/include
,如果头文件不在默认路径里, 就需要用-I参数指定-l
参数就是用来指定程序要链接的库,-l
参数紧接着就是库名; 但是手工来写链接参数总是很麻烦的,
因此,很多库开发包提供了 [生成链接参数] 的程序,名字一般叫xxxx-config,一般放在/usr/bin目录下
eg:xxxx-config --libs --cflags
;pkg-config --libs --cflags opencv
pkg-config参考链接
pkg-config 是一个linux下的命令,用于获得某一个库/模块的所有编译相关的信息。
eg. pkg-config opencv –libs –cflags
, 给出了opencv的头文件和库的所有信息!
其实这个命令两端 有 ` 符号,但是这里打出来, 自动变成代码样式,显示不出…
-
–libs,查看库信息。
-
–cflags,查看头文件信息。
-
pkg-config的信息来自
(1) 系统的/usr/lib
下的所有*.pc文件
。
(2)PKG_CONFIG_PATH
环境变量所指向的路径下的所有*.pc文件。