主要用于设置插件名、添加生成插件动态库的目标文件以及链接相关的第三方库,每一个插件都有一个CMakeLists.txt文件与之对应。对于新增插件的CMakeLists.txt文件,用户只需修改生成的插件名和生成插件的目标文件即可,沿用原有插件的其他配置。以mxpi_sampleplugin插件为例,示例操作如下:
set(PLUGIN_NAME "mxpi_sampleplugin")
set(TARGET_LIBRARY ${PLUGIN_NAME})
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)
add_compile_options(-std=c++11 -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”文件的配置,进行插件的编译和生成。
cd {sdk_install_path}/samples/
mkdir MxpiSamplePlugin
{sdk_install_path}为mxVision软件包的安装路径。
cd MxpiSamplePlugin
mkdir build cd build
cmake ..
make -j
chmod 640 libmxpi_sampleplugin.so cp libmxpi_sampleplugin.so ../../../lib/plugins/