-- CMAKE_INSTALL_PREFIX = /home/chenxiaotao03/rv11091126/repositories/ax-samples/build/install
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /home/chenxiaotao03/resource/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /home/chenxiaotao03/resource/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- CMAKE_TOOLCHAIN_FILE = /home/chenxiaotao03/rv11091126/repositories/ax-samples/toolchains/arm-linux-gnueabihf.toolchain.cmake
-- AXERA: 32Bit target OS is detected. Assume 32-bit compilation mode.
-- Found OpenCV: /workspace/chenxiaotao03/rv11091126/repositories/ax-samples/3rdparty/opencv-arm-linux (found version "4.5.5")
--
--
-- Information Summary:
--
-- CMake information:
-- - CMake version: 3.23.2
-- - CMake generator: Unix Makefiles
-- - CMake building tools: /usr/bin/make
-- - Target System: Linux
-- - Target CPU arch: ARM
-- - Target CPU bus width: 32 Bit
--
-- AXERA-Samples toolchain information:
-- Cross compiling: TRUE
-- C/C++ compiler:
-- - C standard version: C
-- - C standard required:
-- - C standard extensions:
-- - C compiler version: 7.5.0
-- - C compiler: /home/chenxiaotao03/resource/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
-- - C++ standard version: C++
-- - C++ standard required:
-- - C++ standard extensions:
-- - C++ compiler version: 7.5.0
-- - C++ compiler: /home/chenxiaotao03/resource/toolchain/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-g++
-- C/C++ compiler flags:
-- - C compiler flags:
-- - C++ compiler flags:
-- OpenMP:
-- - OpenMP was found: NO
--
-- AXERA-Samples building information:
-- - Project source path is: /home/chenxiaotao03/rv11091126/repositories/ax-samples
-- - Project building path is: /home/chenxiaotao03/rv11091126/repositories/ax-samples/build
--
-- AXERA-Samples other information:
-- Package install path: /home/chenxiaotao03/rv11091126/repositories/ax-samples/build/install
-- Target platform: ax620a
--
-- BSP_MSP_DIR: /home/chenxiaotao03/rv11091126/repositories/ax-samples/script/../3rdparty/msp/out
-- Configuring done
-- Generating done
make install 错误信息
[ 2%] Building CXX object examples/CMakeFiles/ax_classification.dir/ax_classification_steps.cc.o
[ 5%] Linking CXX executable ax_classification
/home/chenxiaotao03/rv11091126/repositories/ax-samples/script/../3rdparty/msp/out/lib/libax_run_joint.so: undefined reference to `std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts()'
/home/chenxiaotao03/rv11091126/repositories/ax-samples/script/../3rdparty/msp/out/lib/libax_run_joint.so: undefined reference to `std::experimental::filesystem::v1::create_directory(std::experimental::filesystem::v1::__cxx11::path const&)'
/home/chenxiaotao03/rv11091126/repositories/ax-samples/script/../3rdparty/msp/out/lib/libax_run_joint.so: undefined reference to `std::experimental::filesystem::v1::status(std::experimental::filesystem::v1::__cxx11::path const&)'
collect2: error: ld returned 1 exit status
examples/CMakeFiles/ax_classification.dir/build.make:111: recipe for target 'examples/ax_classification' failed
make[2]: *** [examples/ax_classification] Error 1
CMakeFiles/Makefile2:131: recipe for target 'examples/CMakeFiles/ax_classification.dir/all' failed
make[1]: *** [examples/CMakeFiles/ax_classification.dir/all] Error 2
Makefile:135: recipe for target 'all' failed
make: *** [all] Error 2
AX SDK版本:
AX620_SDK_V0.31.0_P23_20220708101907_NO199
编译工具链和OPENCV根据编译教程下载, 没有将arm-linux-gnueabihf-gcc
,arm-linux-gnueabihf-g++
设置到系统PATH
中,而是使用绝对路径;msp/out
被放置在了3rdparty
目录。 repo commit id:99b428e9e0
summary.make 输出
make install 错误信息
分析
该问题是ax_run_joint依赖stdc++fs的问题。在
examples/CMakeLists.txt
中问题脚本如下所示:根据报错信息可知:
ax_run_joint
依赖stdc++fs
库,将target_link_libraries (${name} PRIVATE pthread dl) # ax620a use this
换回下面注释的一行,依然报错,主要是因为cmake链接依赖库顺序的问题。脚本中将stdc++fs
放在了ax_run_joint
之前,导致ax_run_joint
找不到stdc++fs
. 经验证,将stdc++fs
放在最后链接即可。另外,AX630没有编译,应该也存在类似问题。