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

macOS下CLion运行C程序时动态链接器无法找到libdivsufsort64库

动态链接器报错:Symbol not found: _divsufsort64(CLion运行失败但命令行正常)

环境信息

  • macOS Sonoma 14.2
  • 编译器:Apple clang 15.0.0
  • CMake版本:3.28.0
  • GNU Make:3.81
  • IDE:CLion 2023.3

问题现象

构建过程无链接错误,但CLion启动程序时动态链接器报错:

dyld[8397]: Symbol not found: _divsufsort64
Referenced from: <12C04522-55DC-3F19-8288-E875505D9BCE> /Users//Documents/projects/problems_linker/cmake-build-debug/problems_linker
Expected in: unknown

但命令行构建运行完全正常,执行命令如下:

mkdir build 
cd build 
cmake .. 
make  
./problems_linker

复现代码(文件同目录)

CMakeLists.txt

cmake_minimum_required(VERSION 3.27)
project(problems_linker C)

set(CMAKE_C_STANDARD 11)

set(SOURCES
main.c
)

set(INCLUDES
${CMAKE_CURRENT_BINARY_DIR}
/usr/local/include
/usr/local/lib
)

add_executable(problems_linker main.c)
target_include_directories(${PROJECT_NAME} PRIVATE ${INCLUDES})
find_package(ZLIB)
target_link_libraries(${PROJECT_NAME} PRIVATE ZLIB::ZLIB)
target_link_libraries(${PROJECT_NAME} PRIVATE /usr/local/lib/libdivsufsort64.dylib)

main.c

#include <stdio.h>
#include <divsufsort64.h>
#include <zlib.h>
#include <stdlib.h>

int main() {
printf("Hello, World!\n");

    gzFile gz;
    
    const uint8_t bs[] = {2, 3, 1, 0};
    long long n = 4;
    int64_t* sa = malloc(n * sizeof(*sa));
    if(divsufsort64(bs, sa, n) < 0)
    {
        
    }
    printf("Works\n");
    
    return 0;

}

依赖安装方式

通过brew安装:

  • divsufsort:
brew tap brewsci/bio
brew install Formula/libdivsufsort
  • zlib:
brew install zlib

已尝试的解决方法

  • 设置DYLD_FALLBACK_LIBRARY_PATH环境变量
  • 改用find_library方式链接divsufsort(修改后的CMake如下,但命令行构建提示DIVSUFSORT变量不存在,且CLion运行仍报错)

修改后的CMakeLists.txt

cmake_minimum_required(VERSION 3.27)
project(problems_linker C)

set(CMAKE_C_STANDARD 11)

set(SOURCES
        main.c
)

set(INCLUDES
        ${CMAKE_CURRENT_BINARY_DIR}
        /usr/local/include
        /usr/local/lib
)
SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
SET(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
add_executable(problems_linker main.c)
target_include_directories(${PROJECT_NAME} PRIVATE ${INCLUDES})
find_package(ZLIB)
find_library(DIVSUFSORT libdivsufsort64 PATHS /usr/local/lib/)
target_link_libraries(${PROJECT_NAME} PRIVATE ZLIB::ZLIB)
target_link_libraries(${PROJECT_NAME} PRIVATE ${DIVSUFSORT})

关键说明

链接器能正确找到库路径,仅动态链接器在CLion运行时报错。旧项目也存在相同现象:命令行正常,CLion运行报错。

请求提供解决思路和帮助。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 09:18:45