at /snap/cmake/1481/share/cmake-4.1/Modules/CMakeTestCCompiler.cmake:67 (message...

2025年09月25日 19:47 响应: 3.92秒 状态: success

🚨 错误信息

CMake Error at /snap/cmake/1481/share/cmake-4.1/Modules/CMakeTestCCompiler.cmake:67 (message): The C compiler "/data/gerrit/workspace_BrainEngine_CXXA-OrinX/Vendor/IC_OrinX/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc" is not able to compile a simple test program. It fails with the following output: Change Dir: '/data/gerrit/workspace_BYD_II_linux/Platform/IC_NM_DataProvider/build_linux_orin/CMakeFiles/CMakeScratch/TryCompile-vjZNDS' Run Build Command(s): /snap/cmake/1481/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_a7473/fast /usr/bin/gmake -f CMakeFiles/cmTC_a7473.dir/build.make CMakeFiles/cmTC_a7473.dir/build gmake[1]: Entering directory '/data/gerrit/workspace_BYD_II_linux/Platform/IC_NM_DataProvider/build_linux_orin/CMakeFiles/CMakeScratch/TryCompile-vjZNDS' Building C object CMakeFiles/cmTC_a7473.dir/testCCompiler.c.o /data/gerrit/workspace_BrainEngine_CXXA-OrinX/Vendor/IC_OrinX/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc -o CMakeFiles/cmTC_a7473.dir/testCCompiler.c.o -c /data/gerrit/workspace_BYD_II_linux/Platform/IC_NM_DataProvider/build_linux_orin/CMakeFiles/CMakeScratch/TryCompile-vjZNDS/testCCompiler.c /data/gerrit/workspace_BrainEngine_CXXA-OrinX/Vendor/IC_OrinX/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/../lib/gcc-cross/aarch64-linux-gnu/9/cc1: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory gmake[1]: *** [CMakeFiles/cmTC_a7473.dir/build.make:81: CMakeFiles/cmTC_a7473.dir/testCCompiler.c.o] Error 1 gmake[1]: Leaving directory '/data/gerrit/workspace_BYD_II_linux/Platform/IC_NM_DataProvider/build_linux_orin/CMakeFiles/CMakeScratch/TryCompile-vjZNDS' gmake: *** [Makefile:134: cmTC_a7473/fast] Error 2

🤖 AI解决方案

错误翻译

CMake Error at /snap/cmake/1481/share/cmake-4.1/Modules/CMakeTestCCompiler.cmake:67 (message):
  The C compiler

    "/data/gerrit/workspace_BrainEngine_CXXA-OrinX/Vendor/IC_OrinX/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc"

  is not able to compile a simple test program.

  It fails with the following output:
  ...
  /data/gerrit/workspace_BrainEngine_CXXA-OrinX/Vendor/IC_OrinX/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/../lib/gcc-cross/aarch64-linux-gnu/9/cc1: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

中文翻译:

CMake 错误于 ... :
  C 编译器

    "/data/gerrit/workspace_BrainEngine_CXXA-OrinX/Vendor/IC_OrinX/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc"

  无法编译一个简单的测试程序。

  它失败了,输出如下:
  ...
  /data/gerrit/workspace_BrainEngine_CXXA-OrinX/Vendor/IC_OrinX/gcc-ubuntu-9.3.0-2020.03-x86_64-aarch64-linux-gnu/bin/../lib/gcc-cross/aarch64-linux-gnu/9/cc1: 加载共享库时出错:libz.so.1:无法打开共享对象文件:没有此类文件或目录

原因分析

交叉编译工具链中的 C 编译器 (aarch64-linux-gnu-gcc) 在尝试编译测试程序时,依赖的共享库 libz.so.1 缺失,导致编译器 (cc1) 无法加载。

解决方案

  • 安装 zlib 开发库:在你的构建环境中(运行 CMake 的系统)安装 zlib 的开发包。具体命令取决于你的宿主操作系统:
  • * Debian/Ubuntu: sudo apt-get update && sudo apt-get install zlib1g-dev * Fedora/CentOS/RHEL: sudo yum update && sudo yum install zlib-devel * Arch Linux: sudo pacman -Syu zlib

  • 检查交叉编译工具链:如果 libz.so.1 在宿主系统中存在但交叉编译工具链仍然找不到,可能需要确保交叉编译工具链的 sysroot 配置正确,或者将宿主系统的 libz 库链接到工具链的 sysroot 中。但这通常由工具链的安装和配置决定。首要步骤是确保宿主环境有 zlib1g-dev
  • 预防措施

  • 明确构建环境依赖:在项目文档中明确列出所有必要的构建依赖项,包括特定版本的共享库和开发包。

  • 使用容器化构建:考虑使用 Docker 或其他容器技术来构建项目,以确保构建环境的一致性,并隔离项目的依赖项。