From 548a185913cded61974207cbcf9d718b9881a20f Mon Sep 17 00:00:00 2001 From: BUG1989 <248857878@qq.com> Date: Mon, 27 May 2024 17:58:06 +0800 Subject: [PATCH] Try to fix the build error of ax620e platform (#141) * fix the build failed with ax620e platform * update the draw objects * fix the compiler error for ax630c and ax620q * fix the build error of ax620a * fix the make install error * fix the ci error --- .../workflows/{build.yml => build_620a.yml} | 4 +- ...build_620e.yaml => build_620q_uclibc.yaml} | 18 +++---- .github/workflows/build_630c_glibc.yaml | 48 +++++++++++++++++++ CMakeLists.txt | 4 +- README.md | 8 ++-- cmake/ax620e.cmake | 45 +++++++++++++++++ cmake/ax650.cmake | 34 +++---------- docs/AX620Q.md | 2 +- docs/AX650N.md | 2 +- docs/compile_620e.md | 31 ++++++------ examples/CMakeLists.txt | 14 ++++-- examples/ax620e/CMakeLists.txt | 2 +- ...20E-linux-uclibcgnueabihf.toolchain.cmake} | 8 ++-- 13 files changed, 149 insertions(+), 71 deletions(-) rename .github/workflows/{build.yml => build_620a.yml} (95%) rename .github/workflows/{build_620e.yaml => build_620q_uclibc.yaml} (63%) create mode 100644 .github/workflows/build_630c_glibc.yaml create mode 100644 cmake/ax620e.cmake rename toolchains/{aarch64-linux-gnu.toolchain.cmake => arm-AX620E-linux-uclibcgnueabihf.toolchain.cmake} (50%) diff --git a/.github/workflows/build.yml b/.github/workflows/build_620a.yml similarity index 95% rename from .github/workflows/build.yml rename to .github/workflows/build_620a.yml index e989b13..40ce579 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build_620a.yml @@ -1,6 +1,6 @@ # This is a basic workflow to help you get started with Actions -name: build +name: build_620a # Controls when the workflow will run on: @@ -44,6 +44,6 @@ jobs: tar -xf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz export PATH=$PATH:gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/ arm-linux-gnueabihf-gcc -v - cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabihf.toolchain.cmake -DBSP_MSP_DIR=${ax_bsp}/ .. + cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabihf.toolchain.cmake -DBSP_MSP_DIR=${ax_bsp}/ -DAXERA_TARGET_CHIP=ax620a .. make -j8 make install diff --git a/.github/workflows/build_620e.yaml b/.github/workflows/build_620q_uclibc.yaml similarity index 63% rename from .github/workflows/build_620e.yaml rename to .github/workflows/build_620q_uclibc.yaml index 197d0b5..4ba39ec 100644 --- a/.github/workflows/build_620e.yaml +++ b/.github/workflows/build_620q_uclibc.yaml @@ -1,6 +1,6 @@ # This is a basic workflow to help you get started with Actions -name: build_620e +name: build_620q_uclibc # Controls when the workflow will run on: @@ -29,20 +29,20 @@ jobs: - name: prepare opencv-library run: | mkdir -p ./3rdparty - wget https://github.com/AXERA-TECH/ax-samples/releases/download/v0.1/opencv-arm-linux-gnueabihf-gcc-7.5.0.zip - unzip opencv-arm-linux-gnueabihf-gcc-7.5.0.zip -d ./3rdparty + wget https://github.com/AXERA-TECH/ax-samples/releases/download/v0.6/opencv-arm-uclibc-linux.zip + unzip opencv-arm-uclibc-linux.zip -d ./3rdparty - name: build run: | mkdir build cd build git clone https://github.com/AXERA-TECH/ax620q_bsp_sdk.git - export ax_bsp=$PWD/ax620q_bsp_sdk/msp/out/arm_glibc/ + export ax_bsp=$PWD/ax620q_bsp_sdk/msp/out/arm_uclibc/ echo $ax_bsp - wget http://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz - tar -xf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz - export PATH=$PATH:gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/ - arm-linux-gnueabihf-gcc -v - cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabihf.toolchain.cmake -DBSP_MSP_DIR=${ax_bsp}/ -DAXERA_TARGET_CHIP=ax620e .. + wget https://github.com/AXERA-TECH/ax620q_bsp_sdk/releases/download/v2.0.0/arm-AX620E-linux-uclibcgnueabihf_V3_20240320.tgz + tar -zxf arm-AX620E-linux-uclibcgnueabihf_V3_20240320.tgz + export PATH=$PATH:arm-AX620E-linux-uclibcgnueabihf/bin/ + arm-AX620E-linux-uclibcgnueabihf-gcc -v + cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-AX620E-linux-uclibcgnueabihf.toolchain.cmake -DBSP_MSP_DIR=${ax_bsp}/ -DAXERA_TARGET_CHIP=ax620q .. make -j8 make install diff --git a/.github/workflows/build_630c_glibc.yaml b/.github/workflows/build_630c_glibc.yaml new file mode 100644 index 0000000..40f5476 --- /dev/null +++ b/.github/workflows/build_630c_glibc.yaml @@ -0,0 +1,48 @@ +# This is a basic workflow to help you get started with Actions + +name: build_630c_glibc + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the "main" branch + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v3 + + # Runs a set of commands using the runners shell + - name: prepare opencv-library + run: | + mkdir -p ./3rdparty + wget https://github.com/AXERA-TECH/ax-samples/releases/download/v0.1/opencv-aarch64-linux-gnu-gcc-7.5.0.zip + unzip opencv-aarch64-linux-gnu-gcc-7.5.0.zip -d ./3rdparty + + - name: build + run: | + mkdir build + cd build + git clone https://github.com/AXERA-TECH/ax620q_bsp_sdk.git + export ax_bsp=$PWD/ax620q_bsp_sdk/msp/out/arm64_glibc/ + echo $ax_bsp + wget https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz + tar -xf gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu.tar.xz + export PATH=$PATH:gcc-arm-9.2-2019.12-x86_64-aarch64-none-linux-gnu/bin/ + aarch64-none-linux-gnu-gcc -v + cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-none-linux-gnu.toolchain.cmake -DBSP_MSP_DIR=${ax_bsp}/ -DAXERA_TARGET_CHIP=ax630c .. + make -j8 + make install diff --git a/CMakeLists.txt b/CMakeLists.txt index 60f9cbb..eb30b7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,10 +52,10 @@ include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/check.cmake") # one should have a name finally project(AXERA-Samples) -# set default chip as as ax620a +# set default chip as as ax650 # TODO: set as an option if (NOT AXERA_TARGET_CHIP) - set (AXERA_TARGET_CHIP "ax620a") + set (AXERA_TARGET_CHIP "ax650") endif () set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O1 -Wall -s -fPIC -Wunused-function") diff --git a/README.md b/README.md index 48fc2aa..114b9ff 100644 --- a/README.md +++ b/README.md @@ -45,12 +45,10 @@ - [Benchmark](benchmark/) 常见开源模型推理耗时统计,基于 *AXera-Pi* 、 *AXera-Pi Pro* 、*AXera-Pi Zero* 实测。 -## 联动项目 +## 关联项目 -- [ax-pipeline](https://github.com/AXERA-TECH/ax-pipeline) 该项目基于 *AXera-Pi* 、 *AXera-Pi Pro* 、*AXera-Pi Zero* 展示 ISP、图像处理、NPU、编码、显示 等功能模块软件调用方法,方便社区开发者进行快速评估和二次开发自己的多媒体应用 -- NPU 工具链在线文档 - - [Pulsar](https://pulsar-docs.readthedocs.io/zh_CN/latest/)(Support AX630A/AX620A/AX620U) - - [Pulsar2](https://pulsar2-docs.readthedocs.io/zh_CN/latest/)(Support AX650A/AX650N/AX630C/AX620Q) +- [Pulsar](https://pulsar-docs.readthedocs.io/zh_CN/latest/)(Support AX630A/AX620A/AX620U) +- [Pulsar2](https://pulsar2-docs.readthedocs.io/zh_CN/latest/)(Support AX650A/AX650N/AX630C/AX620Q) ## 技术讨论 diff --git a/cmake/ax620e.cmake b/cmake/ax620e.cmake new file mode 100644 index 0000000..af6a365 --- /dev/null +++ b/cmake/ax620e.cmake @@ -0,0 +1,45 @@ +# AXERA is pleased to support the open source community by making ax-samples available. +# +# Copyright (c) 2022, AXERA Semiconductor (Shanghai) Co., Ltd. All rights reserved. +# +# Licensed under the BSD 3-Clause License (the "License"); you may not use this file except +# in compliance with the License. You may obtain a copy of the License at +# +# https://opensource.org/licenses/BSD-3-Clause +# +# Unless required by applicable law or agreed to in writing, software distributed +# under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR +# CONDITIONS OF ANY KIND, either express or implied. See the License for the +# specific language governing permissions and limitations under the License. +# +# Author: ls.wang +# + +function(axera_example example_name) + add_executable(${example_name}) + + foreach (file IN LISTS ARGN) + target_sources(${example_name} PRIVATE ${file}) + endforeach () + + target_include_directories(${example_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${BSP_MSP_DIR}/include) + + # opencv + target_include_directories(${example_name} PRIVATE ${OpenCV_INCLUDE_DIRS}) + target_link_libraries(${example_name} PRIVATE ${OpenCV_LIBS}) + + # ax_engine + target_link_libraries(${example_name} PRIVATE ax_engine) + + # sdk + target_link_libraries(${example_name} PRIVATE ${CMAKE_THREAD_LIBS_INIT} ax_interpreter ax_sys ax_ivps) + target_link_directories(${example_name} PRIVATE ${BSP_MSP_DIR}/lib) + + target_compile_options (${example_name} PUBLIC $<$: -O3>) + + if (AXERA_TARGET_CHIP MATCHES "ax630c") + install(TARGETS ${example_name} DESTINATION ax630c) + elseif (AXERA_TARGET_CHIP MATCHES "ax620q") + install(TARGETS ${example_name} DESTINATION ax620q) + endif() +endfunction() diff --git a/cmake/ax650.cmake b/cmake/ax650.cmake index 44f5064..676e1b9 100644 --- a/cmake/ax650.cmake +++ b/cmake/ax650.cmake @@ -22,42 +22,22 @@ function(axera_example example_name) target_sources(${example_name} PRIVATE ${file}) endforeach () - target_include_directories(${example_name} - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_CURRENT_BINARY_DIR} - ${BSP_MSP_DIR}/include - ) + target_include_directories(${example_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${BSP_MSP_DIR}/include) # opencv target_include_directories(${example_name} PRIVATE ${OpenCV_INCLUDE_DIRS}) target_link_libraries(${example_name} PRIVATE ${OpenCV_LIBS}) # ax_engine - target_link_libraries(${example_name} - PRIVATE - ax_engine - ) + target_link_libraries(${example_name} PRIVATE ax_engine) # sdk - target_link_libraries(${example_name} - PRIVATE - ${CMAKE_THREAD_LIBS_INIT} - ax_interpreter - ax_sys ax_ivps - ) - target_link_directories(${example_name} - PRIVATE - ${BSP_MSP_DIR}/lib - ) - - target_compile_options (${example_name} - PUBLIC - $<$: -O3> - ) + target_link_libraries(${example_name} PRIVATE ${CMAKE_THREAD_LIBS_INIT} ax_interpreter ax_sys ax_ivps) + target_link_directories(${example_name} PRIVATE ${BSP_MSP_DIR}/lib) + + target_compile_options (${example_name} PUBLIC $<$: -O3>) + if (AXERA_TARGET_CHIP MATCHES "ax650") install(TARGETS ${example_name} DESTINATION ax650) - elseif (AXERA_TARGET_CHIP MATCHES "ax620e") - install(TARGETS ${example_name} DESTINATION ax620e) endif() endfunction() diff --git a/docs/AX620Q.md b/docs/AX620Q.md index 68ac2e1..8b1a607 100644 --- a/docs/AX620Q.md +++ b/docs/AX620Q.md @@ -5,7 +5,7 @@ - CPU - Dual-core Cortex A53 - NPU - - 8Tops@INT4 or 2Tops@INT8 + - 9.6Tops@INT4 or 2.4Tops@INT8 - ISP - 5Mp@30fps - AI-ISP/T-ISP diff --git a/docs/AX650N.md b/docs/AX650N.md index d2f6597..c46192e 100644 --- a/docs/AX650N.md +++ b/docs/AX650N.md @@ -5,7 +5,7 @@ - CPU - Octa-core Cortex A55 - NPU - - 43.2Tops@INT4 or 10.8Tops@INT8 + - 72Tops@INT4 or 18Tops@INT8 - DSP - Dual VDSP - ISP diff --git a/docs/compile_620e.md b/docs/compile_620e.md index 3b6aaa2..c3e257a 100644 --- a/docs/compile_620e.md +++ b/docs/compile_620e.md @@ -12,10 +12,10 @@ ax-samples 的源码编译目前有两种实现路径: ## 交叉编译 -当前SDK版本(v2.0.2)中支持 64位、32位 两种不同的编译器版本,下面示例分别基于 AX630C 的 64 位环境与 AX620Q 的 32 位环境进行说明。 +当前SDK版本(v2.0.0_P7)中支持 64位、32位 两种不同的编译器版本,下面示例分别基于 AX630C 的 64 位环境与 AX620Q 的 32 位环境进行说明。 - [AX630C](#AX630C(64位,aarch64-linux)) -- [AX620Q](#AX620Q(32位,arm-linux)) +- [AX620Q](#AX620Q(32位,arm-uclibc-linux)) ### AX630C(64位,aarch64-linux) @@ -57,7 +57,7 @@ tar -zxvf msp.tgz 解压完成后将文件夹内此 `msp/out` 目录设置到临时环境变量,具体操作如下: ``` -export ax_bsp=${ax620e_bsp_sdk PATH}/msp/out +export ax_bsp=${ax620e_bsp_sdk PATH}/msp/out/arm64_glibc ``` #### 源码编译 @@ -67,17 +67,17 @@ git clone 下载源码,进入 ax-samples 根目录,创建 cmake 编译任务 git clone https://github.com/AXERA-TECH/ax-samples.git cd ax-samples mkdir build && cd build -cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-none-linux-gnu.toolchain.cmake -DBSP_MSP_DIR=${ax_bsp}/ -DAXERA_TARGET_CHIP=ax620e .. +cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/aarch64-none-linux-gnu.toolchain.cmake -DBSP_MSP_DIR=${ax_bsp}/ -DAXERA_TARGET_CHIP=ax630c .. make -j6 make install ``` -编译完成后,生成的可执行示例存放在 `ax-samples/build/install/ax620e/` 路径下: +编译完成后,生成的可执行示例存放在 `ax-samples/build/install/ax630c/` 路径下: ```bash ax-samples/build$ tree install install -└── ax620e +└── ax630c ├── ax_classification ├── ax_crowdcount ├── ax_depth_anything @@ -99,20 +99,19 @@ install └── ax_yolox ``` -### AX620Q(32位,arm-linux) +### AX620Q(32位,arm-uclibc-linux) #### 3rdparty 准备 -- 下载预编译好的 [OpenCV 库文件](https://github.com/AXERA-TECH/ax-samples/releases/download/v0.1/opencv-arm-linux-gnueabihf-gcc-7.5.0.zip); +- 下载预编译好的 [OpenCV 库文件](https://github.com/AXERA-TECH/ax-samples/releases/download/v0.6/opencv-arm-uclibc-linux.zip); - 在 ax-samples 创建 3rdparty 文件,并将下载好的 OpenCV 库文件压缩包解压到该文件夹中,文件夹目录结构如下所示 ```bash ax-samples$ tree -L 3 . ├── 3rdparty -│   └── opencv-arm-linux +│   └── opencv-arm-uclibc-linux │   ├── bin -│   ├── build_opencv.sh │   ├── include │   ├── lib │   └── share @@ -120,11 +119,11 @@ ax-samples$ tree -L 3 #### 编译环境 - cmake 版本大于等于 3.13 -- AX620E 配套的交叉编译工具链 `arm-linux-gnueabihf-gxx` 已添加到环境变量中 +- AX620E 配套的交叉编译工具链 `arm-AX620E-linux-uclibcgnueabihf-gxx` 已添加到环境变量中 #### 安装交叉编译工具链 -- Arm32 Linux 交叉编译工具链 [获取地址](http://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz) +- Arm32 Linux 交叉编译工具链 [获取地址](https://github.com/AXERA-TECH/ax620q_bsp_sdk/releases/download/v2.0.0/arm-AX620E-linux-uclibcgnueabihf_V3_20240320.tgz) #### 依赖库准备 @@ -139,7 +138,7 @@ tar -zxvf msp.tgz 解压完成后将文件夹内此 `msp/out` 目录设置到临时环境变量,具体操作如下: ``` -export ax_bsp=${ax620e_bsp_sdk PATH}/msp/out +export ax_bsp=${ax620e_bsp_sdk PATH}/msp/out/arm_uclibc ``` #### 源码编译 @@ -149,17 +148,17 @@ git clone 下载源码,进入 ax-samples 根目录,创建 cmake 编译任务 git clone https://github.com/AXERA-TECH/ax-samples.git cd ax-samples mkdir build && cd build -cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-linux-gnueabihf.toolchain.cmake -DBSP_MSP_DIR=${ax_bsp}/ -DAXERA_TARGET_CHIP=ax620e .. +cmake -DCMAKE_TOOLCHAIN_FILE=../toolchains/arm-AX620E-linux-uclibcgnueabihf.toolchain.cmake -DBSP_MSP_DIR=${ax_bsp}/ -DAXERA_TARGET_CHIP=ax620q .. make -j6 make install ``` -编译完成后,生成的可执行示例存放在 `ax-samples/build/install/ax620e/` 路径下: +编译完成后,生成的可执行示例存放在 `ax-samples/build/install/ax620q/` 路径下: ```bash ax-samples/build$ tree install install -└── ax620e +└── ax620q ├── ax_classification ├── ax_crowdcount ├── ax_depth_anything diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index a6a2612..420526e 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -27,11 +27,17 @@ if(AXERA_TARGET_CHIP MATCHES "ax650") endif() add_definitions(-DAXERA_TARGET_CHIP_AX650) -elseif(AXERA_TARGET_CHIP MATCHES "ax620e") +elseif(AXERA_TARGET_CHIP MATCHES "ax630c") if(NOT OpenCV_DIR) - set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/3rdparty/opencv-arm-linux/lib/cmake/opencv4) + set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/3rdparty/opencv-aarch64-linux/lib/cmake/opencv4) endif() + add_definitions(-DAXERA_TARGET_CHIP_AX620E) +elseif(AXERA_TARGET_CHIP MATCHES "ax620q") + if(NOT OpenCV_DIR) + set(OpenCV_DIR ${CMAKE_SOURCE_DIR}/3rdparty/opencv-arm-uclibc-linux/lib/cmake/opencv4) +endif() + add_definitions(-DAXERA_TARGET_CHIP_AX620E) elseif(AXERA_TARGET_CHIP MATCHES "ax620a") if(NOT OpenCV_DIR) @@ -56,7 +62,9 @@ include_directories(.) if(AXERA_TARGET_CHIP MATCHES "ax650") add_subdirectory(${CMAKE_SOURCE_DIR}/examples/ax650) -elseif(AXERA_TARGET_CHIP MATCHES "ax620e") +elseif(AXERA_TARGET_CHIP MATCHES "ax630c") + add_subdirectory(${CMAKE_SOURCE_DIR}/examples/ax620e) +elseif(AXERA_TARGET_CHIP MATCHES "ax620q") add_subdirectory(${CMAKE_SOURCE_DIR}/examples/ax620e) elseif(AXERA_TARGET_CHIP MATCHES "ax620a") add_subdirectory(${CMAKE_SOURCE_DIR}/examples/ax620) diff --git a/examples/ax620e/CMakeLists.txt b/examples/ax620e/CMakeLists.txt index 4195c95..4e52c89 100644 --- a/examples/ax620e/CMakeLists.txt +++ b/examples/ax620e/CMakeLists.txt @@ -18,7 +18,7 @@ find_package(Threads) find_package(OpenCV REQUIRED) -include("${CMAKE_SOURCE_DIR}/cmake/ax650.cmake") +include("${CMAKE_SOURCE_DIR}/cmake/ax620e.cmake") axera_example(ax_classification ax_classification_steps.cc) diff --git a/toolchains/aarch64-linux-gnu.toolchain.cmake b/toolchains/arm-AX620E-linux-uclibcgnueabihf.toolchain.cmake similarity index 50% rename from toolchains/aarch64-linux-gnu.toolchain.cmake rename to toolchains/arm-AX620E-linux-uclibcgnueabihf.toolchain.cmake index 1ab4f8e..7c72ebb 100644 --- a/toolchains/aarch64-linux-gnu.toolchain.cmake +++ b/toolchains/arm-AX620E-linux-uclibcgnueabihf.toolchain.cmake @@ -1,10 +1,10 @@ # set cross-compiled system type, it's better not use the type which cmake cannot recognized. SET (CMAKE_SYSTEM_NAME Linux) -SET (CMAKE_SYSTEM_PROCESSOR aarch64) +SET (CMAKE_SYSTEM_PROCESSOR arm) -# aarch64-linux-gnu-gcc DO NOT need to be installed, so make sure aarch64-linux-gnu-gcc and aarch64-linux-gnu-g++ can be found in $PATH: -SET (CMAKE_C_COMPILER "aarch64-linux-gnu-gcc") -SET (CMAKE_CXX_COMPILER "aarch64-linux-gnu-g++") +# gcc-arm-linux-gnueabi DO NOT need to be installed, so make sure arm-linux-gnueabihf-gcc and arm-linux-gnueabihf-g++ can be found in $PATH: +SET (CMAKE_C_COMPILER "arm-AX620E-linux-uclibcgnueabihf-gcc") +SET (CMAKE_CXX_COMPILER "arm-AX620E-linux-uclibcgnueabihf-g++") # set searching rules for cross-compiler SET (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)