Compilation and Running
Before running the sample, set the Vision SDK environment variables.
source {Vision SDK installation directory}/mxVision/set_env.sh
Compilation
- Prepare the source code file main.cpp and the CMakeLists.txt file. Refer to the following commands to compile CMakeLists.txt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
# CMake lowest version requirement cmake_minimum_required(VERSION 3.5.2) # project information project(MindX_SDK_Sample) set(MX_SDK_HOME $ENV{MX_SDK_HOME}) if (NOT DEFINED ENV{MX_SDK_HOME}) string(REGEX REPLACE "(.*)/(.*)/(.*)/(.*)" "\\1" MX_SDK_HOME ${CMAKE_CURRENT_SOURCE_DIR}) message(STATUS "set default MX_SDK_HOME: ${MX_SDK_HOME}") else () message(STATUS "env MX_SDK_HOME: ${MX_SDK_HOME}") endif() # Compile options add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) add_definitions(-Dgoogle=mindxsdk_private) add_compile_options(-std=c++14 -fPIC -fstack-protector-all -Wall) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) set(CMAKE_CXX_FLAGS_DEBUG "-g") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-z,relro,-z,now,-z,noexecstack -s -pie") set(CMAKE_SKIP_RPATH TRUE) # add mxbase header path include_directories( ${MX_SDK_HOME}/include/ ${MX_SDK_HOME}/opensource/include/ ${MX_SDK_HOME}/opensource/opencv4/ ) # add mxbase lib path link_directories( ${MX_SDK_HOME}/lib/ ${MX_SDK_HOME}/lib/modelpostprocessors/ ${MX_SDK_HOME}/opensource/lib/ ${MX_SDK_HOME}/opensource/lib64/ ) add_executable(main main.cpp) target_link_libraries(main glog mxbase opencv_world pthread mindxsdk_protobuf) install(TARGETS main DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
- CMake compilation.
- Create the build directory in the directory where the CMakeLists.txt file is located.
1mkdir build - Go to the build directory.
1cd build
- Run the cmake command.
1cmake .. - Run the make command to generate the main executable file.
1make -j
- Create the build directory in the directory where the CMakeLists.txt file is located.
Running
Run the executable file (execution program) generated after compilation.
1 | ./main |
- If "undefined reference to symbol 'absl_xxx', error adding symbols: DSO missing from command line" is displayed during compilation or running, add the link options -Wl, --no-as-needed -Wl, and --copy-dt-needed-entries to the executable program.
Parent topic: Development Using APIs (C++)