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

M1 Mac Ventura编译RD_RenderingEngine时遇-lX11链接错误求助

解决M1 Mac Ventura上编译RD_RenderingEngine时-lX11链接错误

问题重现

编译项目时触发链接错误:

ld: library not found for -lX11
clang: error: linker command failed with exit code 1 (use -v to see invocation)

已安装XQuartz和libx11,但问题未解决。

具体解决步骤

  • 确认X11库路径
    M1架构下,XQuartz的默认库路径为/opt/X11/lib;若通过Homebrew安装libx11,路径通常是/opt/homebrew/lib。

  • 修改Makefile指定链接路径
    打开项目根目录的Makefile,找到生成rd_view的链接命令行,添加-L参数指定X11库的路径:

    g++ -o rd_view -g -Wall libcs631.a rd_direct.o pnm_display.o -lm -L/opt/X11/lib -lX11
    

    若同时使用Homebrew安装的libx11,可追加其路径:

    g++ -o rd_view -g -Wall libcs631.a rd_direct.o pnm_display.o -lm -L/opt/X11/lib -L/opt/homebrew/lib -lX11
    
  • 确保头文件路径正确(若存在编译错误)
    如果之前还有X11头文件找不到的问题,在编译.o文件的规则中添加-I/opt/X11/include,例如:

    rd_direct.o: rd_direct.c rd.h
    	g++ -g -Wall -I/opt/X11/include -c rd_direct.c
    
  • 验证XQuartz运行状态
    确保XQuartz已启动,且终端是通过XQuartz打开的(或已正确设置DISPLAY环境变量)。在终端执行以下命令验证:

    echo $DISPLAY
    

    输出类似/private/tmp/com.apple.launchd.xxxx/org.xquartz:0即为正常,否则重启XQuartz并重新打开终端。

  • 重新编译项目
    执行以下命令清理旧编译产物并重新编译:

    make clean
    make
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 09:02:51