You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CMake无法在/usr/lib/aarch64-linux-gnu/路径下找到UnitTest++库

解决ARM64平台下CMake无法找到UnitTest++库的问题
  • 明确指定库的搜索名称
    有时候find_library的自动名称匹配可能出问题,手动指定名称参数试试:

    find_library(UnitTest++_LIB NAMES UnitTest++ REQUIRED)
    

    或者直接指定完整的库文件名:

    find_library(UnitTest++_LIB NAMES libUnitTest++.so REQUIRED)
    

    后续链接时使用${UnitTest++_LIB}变量即可。

  • 添加ARM64库路径到CMAKE_LIBRARY_PATH
    CMAKE_FIND_ROOT_PATH主要用于交叉编译场景,本地编译时应该用CMAKE_LIBRARY_PATH来追加搜索路径:

    set(CMAKE_LIBRARY_PATH "/usr/lib/aarch64-linux-gnu" ${CMAKE_LIBRARY_PATH})
    find_library(UnitTest++ REQUIRED)
    

    也可以在执行cmake命令时直接传入参数:

    cmake .. -DCMAKE_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu
    
  • 检查库的有效性与权限
    先确认库本身没问题:

    # 查看符号链接状态
    ls -l /usr/lib/aarch64-linux-gnu/libUnitTest++.so
    # 验证库架构是否为ARM64
    file /usr/lib/aarch64-linux-gnu/libUnitTest++.so
    

    确保库是有效的ARM64二进制文件,且当前用户有读取权限。

  • 改用find_package(如果支持)
    如果系统里有UnitTest++的CMake配置文件,用find_package会更可靠:

    find_package(UnitTest++ REQUIRED)
    

    成功找到后,CMake会自动导出UnitTest++_LIBRARIES等变量供链接使用。

  • 手动导入库
    要是上面的方法都不管用,直接手动指定库的绝对路径:

    add_library(UnitTest++ SHARED IMPORTED)
    set_target_properties(UnitTest++ PROPERTIES
        IMPORTED_LOCATION "/usr/lib/aarch64-linux-gnu/libUnitTest++.so"
    )
    

    链接时直接引用这个导入目标即可。

内容的提问来源于stack exchange,提问作者Richard Whitehead

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 07:15:35