# arm_compiler **Repository Path**: ningdro/arm_compiler ## Basic Information - **Project Name**: arm_compiler - **Description**: cmake vcpkg 交叉编译arm - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2022-01-13 - **Last Updated**: 2024-10-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # WSL vcpkg arm 交叉编译环境 ### 目标系统的编译工具 ```bash ningdr@ubuntu$ apt-cache search aarch64 ningdr@ubuntu$ sudo apt install -y gcc-10-aarch64-linux-gnu ningdr@ubuntu$ sudo apt install -y g++-10-aarch64-linux-gnu ``` ### 编写cmake文件 ```cmake set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) set(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc-10) set(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++-10) ``` ### vcpkg 安装包 ```shell # triplet 位于 ${vcpkg_root}/triplet/community/arm64-linux.cmake ningdr@ubuntu$ ./vcpkg install --triplet=arm64-linux spdlog ``` ### Clion cmake 设置 添加配置参数: ```shell cmake .. -DCMAKE_TOOLCHAIN_FILE=/mnt/e/workspace-clion/cmake_vcpkg/vcpkg/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=arm64-linux ``` ![img.png](img/clion_cmake.png) ### 交叉编译 opencv #### opencv 使用 cuda 硬解码,需要下载[nvidia-video-codec-sdk](https://developer.nvidia.com/nvidia-video-codec-sdk/download),然后将头文件和库文件拷贝到cuda目录下 ```shell vim /mnt/d/clibs/opencv/git-src/opencv-4.5.4/platforms/linux/aarch64-gnu.toolchain.cmake ======================file content======================== set(CMAKE_SYSTEM_PROCESSOR aarch64) set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler version") set(GNU_MACHINE "aarch64-linux-gnu" CACHE STRING "GNU compiler triple") set(CMAKE_C_COMPILER /usr/bin/aarch64-linux-gnu-gcc-10) set(CMAKE_CXX_COMPILER /usr/bin/aarch64-linux-gnu-g++-10) include("/home/ningdr/soft/vcpkg/scripts/buildsystems/vcpkg.cmake") set(VCPKG_TARGET_TRIPLET arm64-linux) include("${CMAKE_CURRENT_LIST_DIR}/arm.toolchain.cmake") ======================file content======================== cmake \ -D CMAKE_TOOLCHAIN_FILE=/mnt/d/clibs/opencv/git-src/opencv-4.5.4/platforms/linux/aarch64-gnu.toolchain.cmake \ -D WITH_CUDA=ON \ -D WITH_NVCUVID=ON \ -D WITH_GSTREAMER=ON \ -D OPENCV_EXTRA_MODULES_PATH=/mnt/d/clibs/opencv/git-src/opencv_contrib-4.5.4/modules \ -D INSTALL_PYTHON_EXAMPLES=OFF \ -D INSTALL_C_EXAMPLES=OFF \ -D BUILD_EXAMPLES=OFF \ -D CMAKE_C_COMPILER=/usr/bin/aarch64-linux-gnu-gcc-10 \ -D CMAKE_CXX_COMPILER=/usr/bin/aarch64-linux-gnu-g++-10 \ -D CMAKE_MAKE_PROGRAM:PATH=/usr/bin/make \ -D CMAKE_INSTALL_PREFIX=/mnt/d/clibs/opencv/aarch64-4.5.4 \ .. ```