平台:WSL2 Ubuntu 24.04
编译安装
根据 NCNN how-to-build,
首先安装交叉编译器 Arm GNU Toolchain,选择 arm-gnu-toolchain-13.3.rel1-x86_64-aarch64-none-linux-gnu.tar.xz。
解压并设置环境变量后,执行以下编译命令:
1 | cd <ncnn-root-dir> |
若出现如下报错:
1 | ... |
注意到 cmake 文件中 C/C++ 编译器需要设置为上文安装的交叉编译器的名称,
故修改 <ncnn-root-dir>/toolchains/aarch64-linux-gnu.toolchain.cmake
中 CMAKE_C_COMPILER
和 CMAKE_CXX_COMPILER
为aarch64-none-linux-gnu-gcc
和 aarch64-none-linux-gnu-g++
。
修改后重新执行编译指令。
代码阅读
在 vscode 阅读/开发 cmake 项目时,为了获得正确的 IntelliSense 等功能,需要设置 .vscode/c_cpp_properties.json
,
重点修改 compilerPath
,intelliSenseMode
和 compileCommands
,示例如下:
1 | { |
compilerPath
为安装的 C++ 交叉编译器路径。
在修改 compilerPath
时,intelliSenseMode
将会被隐式修改为编译器对应的 linux-gcc-arm64
(可以在 vscode 输出中看到),
为了展示此处一并显式手动修改。
compileCommands
为 cmake 生成的项目编译相关文件,可以传递包括 includePath
在内的丰富编译信息。
运行 cmake 时添加参数 -DCMAKE_EXPORT_COMPILE_COMMANDS=1
或者在 cmake 文件中添加 set(CMAKE_EXPORT_COMPILE_COMMANDS True
,
进行编译即可在输出目录获得 compile_commands.json
文件。