昇腾社区首页
中文
注册

插件编译

CMakeLists.txt文件配置

主要用于设置插件名、添加生成插件动态库的目标文件以及链接相关的第三方库,每一个插件都有一个CMakeLists.txt文件与之对应。对于新增插件的CMakeLists.txt文件,用户只需修改生成的插件名和生成插件的目标文件即可,沿用原有插件的其他配置。以mxpi_sampleplugin插件为例,示例操作如下(详细的CMakeLists.txt请参考样例插件CMakeLists(CMakeLists.txt)):

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_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”分别代表生成的插件名和生成插件的目标文件。其他的配置沿用原有的插件。

Atlas 500 智能小站仅支持作为运行环境,出厂预安装EulerOS、驱动&固件。如若用户无ARM环境的设备,可支持在Ubuntu 18.04 x86_64系统的设备交叉编译SDK的应用,编译后的应用再部署到Atlas 500 智能小站中运行,详情请参见交叉编译插件样例

命令行编译

命令行编译主要根据“CMakeLists.txt”文件的配置,进行插件的编译和生成。

  1. 新建“MxpiSamplePlugin”目录。
    cd {sdk_install_path}/samples/
    mkdir MxpiSamplePlugin

    {sdk_install_path}为MindX SDK开发套件包的安装路径。

  2. 进入到“MxpiSamplePlugin”目录下。
    cd MxpiSamplePlugin
  3. 将插件头文件、源文件和CMakeLists.txt文件存放至“MxpiSamplePlugin”目录。
  4. 新建一个“build”文件夹,并跳转到“build”文件夹中。
    mkdir build
    cd build
  5. 创建Makefile文件,避免污染项目的“CMakeLists.txt”
    cmake ..
  6. 根据生成的Makefile文件编译项目。
    make -j
  7. 将生成插件的.so文件权限设置为“640”并拷贝至“plugins”目录下。
    chmod 640 libmxpi_sampleplugin.so
    cp libmxpi_sampleplugin.so ../../../lib/plugins/