为什么要转qt工程配置:方便调试,工程集成。
1、qmake生成qt工程
参考文章:makefile与.pro转换。
qmake -project
工程目录下生成deepstream-test1.pro文件,打开:
TEMPLATE = app
TARGET = deepstream-test1
INCLUDEPATH += .DEFINES += QT_DEPRECATED_WARNINGSSOURCES += deepstream_test1_app.c
默认为我们添加当前目录进include,添加当前工程源文件。直接运行不行,因为没有加引用库。
2、makefile解读转.pro配置
qt中.pro文件详细说明参考文章:qt中.pro文件详细说明;
makefile打印变量值参考文章:makefile打印变量值进行调试;
pkg-config功能即使用方法参考文章:linux下pkg-config功能及使用;
qt中使用pkg-config简化配置参考文章:qt中在.pro配置文件中使用pkg-config。
APP:= deepstream-test1-app # 生成的app名字,将工程TARGET改为此名,保持一致
工程头文件:
PKGS:= gstreamer-1.0
INCS:= $(wildcard *.h) # 匹配当前工程头文件
CFLAGS+= -I../../../includes # 上上级目录includes文件
CFLAGS+= `pkg-config --cflags $(PKGS)` # gstreamer-1.0头文件
工程源文件:
SRCS:= $(wildcard *.c) # 匹配当前工程.c文件
LIB库文件:
PKGS:= gstreamer-1.0
NVDS_VERSION:=5.0
LIB_INSTALL_DIR?=/opt/nvidia/deepstream/deepstream-$(NVDS_VERSION)/lib/LIBS:= `pkg-config --libs $(PKGS)`
LIBS+= -L$(LIB_INSTALL_DIR) -lnvdsgst_meta -lnvds_meta \-Wl,-rpath,$(LIB_INSTALL_DIR)
根据makefile语法,找出所有依赖,进行.pro配置。
TEMPLATE = app
TARGET = deepstream-test1-app
INCLUDEPATH += . \../../../includes \/usr/include/gstreamer-1.0 \/usr/include/glib-2.0 \/usr/lib/x86_64-linux-gnu/glib-2.0/includeDEFINES += QT_DEPRECATED_WARNINGS# Input
SOURCES += deepstream_test1_app.cLIBS += /opt/nvidia/deepstream/deepstream-5.0/lib/libnvdsgst_meta.so \/opt/nvidia/deepstream/deepstream-5.0/lib/libnvds_meta.so \/usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so \/usr/lib/x86_64-linux-gnu/libgobject-2.0.so \/usr/lib/x86_64-linux-gnu/libglib-2.0.so
编译,运行通过。
3、使用pkgconfig简化gstreamer-1.0 lib库引用
LIBS += /opt/nvidia/deepstream/deepstream-5.0/lib/libnvdsgst_meta.so \/opt/nvidia/deepstream/deepstream-5.0/lib/libnvds_meta.so \/usr/lib/x86_64-linux-gnu/libgstreamer-1.0.so \/usr/lib/x86_64-linux-gnu/libgobject-2.0.so \/usr/lib/x86_64-linux-gnu/libglib-2.0.so
等效于:
LIBS += /opt/nvidia/deepstream/deepstream-5.0/lib/libnvdsgst_meta.so \/opt/nvidia/deepstream/deepstream-5.0/lib/libnvds_meta.so
CONFIG += link_pkgconfig
PKGCONFIG += gstreamer-1.0
4、编译运行
点击运行,生成deepstream-test1-app。同样,拷贝sample_720p.h264到编译目录,运行:
./deepstream-test1-app sample_720p.h264