5. 使用sophon-mw开发
在安装完sophon-mw后,用户可以用两种方式将sophon-mw的库链接到自己的编译程序中。
** 如果使用Make编译系统 **
推荐用户使用pkgconfig来寻找sophon-mw库。
在之前的安装中,我们已经将sophon-mw的pkgconfig路径加入到环境变量PKG_CONFIG_PATH。因此,用户可以在Makefile中添加如下语句:
CFLAGS = -std=c++11
# add libsophon dependency because sophon-ffmpeg rely on it
CFLAGS += -I/opt/sophon/libsophon-current/include/
LDFLAGS += -L/opt/sophon/libsophon-current/lib -lbmcv -lbmlib -lbmvideo -lbmvpuapi -lbmvpulite -lbmjpuapi -lbmjpulite -lbmion
# add sophon-ffmpeg
CFLAGS += $(shell pkg-config --cflags libavcodec libavformat libavfilter libavutil libswscale)
LDFLAGS += $(shell pkg-config --libs libavcodec libavformat libavfilter libavutil libswscale)
# add sophon-opencv
CFLAGS += $(shell pkg-config --cflags opencv4)
LDFLAGS += $(shell pkg-config --libs opencv4)
然后就可以在Makefile中使用sophon-ffmpeg和sophon-opencv的库。
注意:当系统在/usr/lib或者/usr/local/lib下还安装了另一份ffmpeg或者opencv的时候,要注意检查下,是否搜索到了正确的sophon-ffmpeg/sophon-opencv路径。 如果搜索不正确,则需要显式地指定头文件位置和库文件位置
** 如果使用CMake编译系统 **
用户可以在CMakeLists.txt中添加如下语句:
# add libsophon
find_package(libsophon REQUIRED)
include_directories(${LIBSOPHON_INCLUDE_DIRS})
link_directories(${LIBSOPHON_LIB_DIRS})
# add sophon-ffmpeg
set(FFMPEG_DIR /opt/sophon/sophon-ffmpeg-latest/lib/cmake)
find_package(FFMPEG REQUIRED NO_DEFAULT_PATH)
include_directories(${FFMPEG_INCLUDE_DIRS})
link_directories(${FFMPEG_LIB_DIRS})
# add sophon-opencv
set(OpenCV_DIR /opt/sophon/sophon-opencv-latest/lib/cmake/opencv4)
find_package(OpenCV REQUIRED NO_DEFAULT_PATH)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(${YOUR_TARGET_NAME} ${YOUR_SOURCE_FILES})
target_link_libraries(${YOUR_TARGET_NAME} ${FFMPEG_LIBS} ${OpenCV_LIBS})
在用户的代码中即可以调用sophon-ffmpeg和sophon-opencv中的函数:
#include <opencv2/opencv.hpp>
int main(int argc, char const *argv[])
{
cv::Mat img = cv::imread(argv[1]);
return 0;
}