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

使用make创建共享库时出现dangling symlink悬空软链接问题

问题根因

你的Makefile中软链接创建命令的路径写法错误,这是导致软链接悬空的直接原因。
从ls -la的输出可以看到,存放在lib/目录下的两个软链接,指向的目标路径写的是./lib/libdhlim.so.1.0。软链接的路径解析是相对于软链接自身所在目录进行的,也就是说系统解析这两个软链接时,实际查找的路径是lib/./lib/libdhlim.so.1.0即lib/lib/libdhlim.so.1.0,这个路径不存在,自然会判定为悬空软链接。
你手动执行相同命令能正常运行,是因为手动输入时大概率调整了路径写法,没有沿用Makefile里带$(LIB_DIR)前缀的目标路径。


修复方法

共享库的软链接通用创建逻辑是在库所在目录下,直接用文件名创建相对路径软链接,修改Makefile的构建段即可:

# The library build step.
lib : $(DHLLOBJS)
    $(CC) $(XCFLAGS) $(SCFLAGS)$(SLIB).1 $(INCFLAGS) -o $(LIB_DIR)/$(SLIB).1.0 \
    $(DLOPATHS) $(LNKFLAGS)
    # 先切换到库存放目录,再创建同目录下的相对软链接
    cd $(LIB_DIR) && ln -sf $(SLIB).1.0 $(SLIB).1
    cd $(LIB_DIR) && ln -sf $(SLIB).1.0 $(SLIB)

修改后重新编译,再查看lib目录的软链接,指向关系会变成同目录下的真实库文件:

lrwxrwxrwx 1 root root    15 Jul  5 21:13 libdhlim.so -> libdhlim.so.1.0
lrwxrwxrwx 1 root root    15 Jul  5 21:13 libdhlim.so.1 -> libdhlim.so.1.0
-rwxrwxrwx 1 root root 23792 Jul  5 21:13 libdhlim.so.1.0

此时再执行chmod命令就不会触发悬空软链接报错。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:51:12