ld returned 1 exit status /data/gerrit/workspace_AIBox_repo/Vendor/IC_NM_OrinX/a...
🚨 错误信息
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流程中加入链接检查,及时发现库文件缺失或配置错误。
* 对项目依赖的库进行版本管理和依赖梳理,避免引入不兼容的库或版本。