下载
中文
注册

编译

CMakeLists.txt文件配置

CMakeLists.txt文件参考内容如下:

cmake_minimum_required(VERSION 3.5.2)
project(samplepostprocess)
set(MX_SDK_HOME "$ENV{MX_SDK_HOME}")
add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0 -Dgoogle=mindxsdk_private)
set(PLUGIN_NAME "samplepostprocess")
set(TARGET_LIBRARY ${PLUGIN_NAME})
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib)
include_directories(${MX_SDK_HOME}/include)
include_directories(${MX_SDK_HOME}/opensource/include)
include_directories(${MX_SDK_HOME}/opensource/include/gstreamer-1.0)
include_directories(${MX_SDK_HOME}/opensource/include/glib-2.0)
include_directories(${MX_SDK_HOME}/opensource/lib/glib-2.0/include)
link_directories(${MX_SDK_HOME}/opensource/lib)
link_directories(${MX_SDK_HOME}/lib)
add_compile_options(-std=c++14 -fPIC -fstack-protector-all -pie -Wno-deprecated-declarations)
add_compile_options("-DPLUGIN_NAME=${PLUGIN_NAME}")
add_definitions(-DENABLE_DVPP_INTERFACE)
add_library(${TARGET_LIBRARY} SHARED SamplePostProcess.cpp SamplePostProcess.h)
target_link_libraries(${TARGET_LIBRARY} glib-2.0 gstreamer-1.0 gobject-2.0 gstbase-1.0 gmodule-2.0 glog)
target_link_libraries(${TARGET_LIBRARY} plugintoolkit mxpidatatype mxbase)
install(TARGETS ${TARGET_LIBRARY} LIBRARY DESTINATION ${MX_SDK_HOME}/lib/modelpostprocessors)

对于新增后处理的CMakeLists.txt文件,用户只需修改生成的后处理名和生成动态库的目标文件即可,沿用原有的其他配置。以开发一个ResNet-50后处理为例,示例操作如下:

其中,“samplepostprocess”“SamplePostProcess.cpp”分别代表生成的后处理动态库名和生成后处理的目标文件,其他的配置沿用原有的后处理。

命令行编译

命令行编译主要根据“CMakeLists.txt”文件的配置,进行插件的编译和生成。以下步骤中{sdk_install_path}Vision SDK软件包的安装路径。

  1. 新建并进入“SamplePostProcess”目录。
    cd {sdk_install_path}/samples/
    mkdir SamplePostProcess
    cd SamplePostProcess
  2. 将后处理动态库头文件、源文件和“CMakeLists.txt”文件存放至“SamplePostProcess”目录。
  3. 新建并进入“build”目录。
    mkdir build
    cd build
  4. 创建Makefile文件,避免污染项目的CMakeLists。
    cmake ..
  5. 根据生成的Makefile文件编译项目。
    make -j
  6. 将生成后处理的.so文件拷贝至{sdk_install_path}/lib/modelpostprocessors”目录下。
    make install

如需使用生成的.so文件,需要将该文件的权限修改为440。