插件编译
CMakeLists.txt文件配置
主要用于设置插件名、添加生成插件动态库的目标文件以及链接相关的第三方库,每一个插件都有一个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++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”目录下。
cd MxpiSamplePlugin
- 将插件头文件、源文件和CMakeLists.txt文件存放至“MxpiSamplePlugin”目录。
- 新建一个“build”文件夹,并跳转到“build”文件夹中。
mkdir build cd build
- 创建Makefile文件,避免污染项目的“CMakeLists.txt”。
cmake ..
- 根据生成的Makefile文件编译项目。
make -j
- 将生成插件的.so文件权限设置为“440”并拷贝至“plugins”目录下。
chmod 440 libmxpi_sampleplugin.so cp libmxpi_sampleplugin.so ../../../lib/plugins/
父主题: (可选)插件开发