ld returned 1 exit status /data/gerrit/workspace_AIBox_repo/Vendor/IC_NM_OrinX/a...

2025年10月14日 16:13 2.83 秒 success

错误信息

collect2: error: ld returned 1 exit status /data/gerrit/workspace_AIBox_repo/Vendor/IC_NM_OrinX/aarch64--glibc--stable-2022.08-1/bin/aarch64-linux-g++ -w -std=c++17 -Wl,-rpath-link=/data/gerrit/workspace_AIBox_repo/Vendor/IC_NM_OrinX/output/usr/local/lib -Wl,-rpath-link=/data/gerrit/workspace_AIBox_repo/Vendor/IC_NM_OrinX/output/usr/local/lib CMakeFiles/SenseMemoryService.dir/SenseMemoryService.cpp.obj -o /data/gerrit/workspace_AIBox_repo/AICore/IC_NM_SenseMemory/output/linux_orin/bin/SenseMemoryService -L/data/gerrit/workspace_AIBox_repo/Vendor/IC_NM_OrinX/output/usr/local/lib -L/data/gerrit/workspace_AIBox_repo/AICore/IC_NM_SenseMemory/output/linux_orin/lib -lsenseauto_infrastructure -lsenseauto_sensememory -lsenseauto_sensory_memory -lsystemd -lcurl make[2]: *** [build_NM_SenseMemory/shell/linux/SenseMemoryService/CMakeFiles/SenseMemoryService.dir/build.make:103: /data/gerrit/workspace_AIBox_repo/AICore/IC_NM_SenseMemory/output/linux_orin/bin/SenseMemoryService] Error 1 make[2]: Leaving directory '/data/gerrit/workspace_AIBox_repo/Vendor/IC_NM_OrinX/build' make[1]: *** [CMakeFiles/Makefile2:2150: build_NM_SenseMemory/shell/linux/SenseMemoryService/CMakeFiles/SenseMemoryService.dir/all] Error 2

AI 解决方案

  • 错误翻译

  •     collect2: error: ld returned 1 exit status
        # 核心关键句:链接器返回了1个退出状态,表示链接过程中发生错误。
        

    • 原因分析

    • 链接器(ld)在尝试将编译后的目标文件和库链接成可执行文件时失败。最常见的原因是找不到某个库文件,或者库文件之间存在依赖问题。

      • 解决方案

      • 检查链接标志:仔细核对 -L 指定的库路径是否正确,以及 -l 指定的库名是否与实际文件匹配。
            # 示例:检查 -lsenseauto_infrastructure 对应的库文件是否存在于指定的 -L 路径下
            # 假设库文件名为 libsenseauto_infrastructure.so 或 libsenseauto_infrastructure.a
            ls /data/gerrit/workspace_AIBox_repo/Vendor/IC_NM_OrinX/output/usr/local/lib/libsenseauto_infrastructure.*
            ls /data/gerrit/workspace_AIBox_repo/AICore/IC_NM_SenseMemory/output/linux_orin/lib/libsenseauto_infrastructure.*
            

        检查依赖关系:如果项目依赖多个自定义库,确保它们之间没有循环依赖或缺失的依赖。
        查看详细链接错误:通常 collect2 报错前会有更详细的错误信息(如 undefined reference to '...'),需要找到这些信息来确定具体是哪个符号/函数/变量找不到。

        • 预防措施

        • 在CI/CD流程中加入链接检查,及时发现库文件缺失或配置错误。
          * 对项目依赖的库进行版本管理和依赖梳理,避免引入不兼容的库或版本。