CMakeLists.txt文件配置
主要用于设置插件名、添加生成插件动态库的目标文件以及链接相关的第三方库,每一个插件都有一个CMakeLists.txt文件与之对应。对于新增插件的CMakeLists.txt文件,用户只需修改生成的插件名和生成插件的目标文件即可,沿用原有插件的其他配置。以mxpi_sampleplugin插件为例,示例操作如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | set(PLUGIN_NAME "mxpi_sampleplugin")
set(TARGET_LIBRARY ${PLUGIN_NAME})
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
add_compile_options(-std=c++14 -fPIC -fstack-protector-all -pie -Wno-deprecated-declarations)
add_link_options(-Wl,-z,relro,-z,now,-z,noexecstack -s -pie)
add_compile_options("-DPLUGIN_NAME=${PLUGIN_NAME}")
add_definitions(-DENABLE_DVPP_INTERFACE)
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_library(${TARGET_LIBRARY} SHARED MxpiSamplePlugin.cpp)
target_link_libraries(${TARGET_LIBRARY} glib-2.0 gstreamer-1.0 gobject-2.0 gstbase-1.0 gmodule-2.0)
target_link_libraries(${TARGET_LIBRARY} mxpidatatype plugintoolkit mxbase mindxsdk_protobuf)
|
其中,“mxpi_sampleplugin”和“MxpiSamplePlugin.cpp”分别代表生成的插件名和生成插件的目标文件。其他的配置沿用原有的插件。
命令行编译
命令行编译主要根据“CMakeLists.txt”文件的配置,进行插件的编译和生成。
- 新建“MxpiSamplePlugin”目录。
| cd {sdk_install_path}/samples/
mkdir MxpiSamplePlugin
|
{sdk_install_path}为Vision SDK软件包的安装路径。
- 进入到“MxpiSamplePlugin”目录下。
- 将插件头文件、源文件和CMakeLists.txt文件存放至“MxpiSamplePlugin”目录。
- 新建一个“build”文件夹,并跳转到“build”文件夹中。
- 创建Makefile文件,避免污染项目的“CMakeLists.txt”。
- 根据生成的Makefile文件编译项目。
- 将生成插件的.so文件权限设置为“440”并拷贝至“plugins”目录下。
| chmod 440 libmxpi_sampleplugin.so
cp libmxpi_sampleplugin.so ../../../lib/plugins/
|