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

Mac M2环境下执行CMake失败:未找到JNI组件

解决Mac M2编译SUMO时的cmake错误

1. 处理xcodebuild依赖报错

报错xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance的原因是当前仅安装了Command Line Tools,而xcodebuild需要完整Xcode环境:

  • 从App Store安装完整Xcode(仅Command Line Tools无法满足需求)
  • 安装完成后执行以下命令切换开发者目录并接受许可协议:
    sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
    sudo xcodebuild -license accept
    

2. 修复JNI找不到的问题

你的JAVA_HOME指向的是JRE(Java运行时环境)路径,而JNI依赖JDK(Java开发工具包)的头文件,导致cmake无法定位所需组件:

  • 安装JDK(推荐OpenJDK或Oracle JDK),比如通过Homebrew安装OpenJDK:
    brew install openjdk
    
  • 设置正确的JAVA_HOME到JDK路径,以OpenJDK 17为例,路径通常为:
    export JAVA_HOME=/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home
    
    可将此命令添加到~/.zshrc(M2 Mac默认shell为zsh),确保终端每次启动都生效。
  • 重新运行cmake命令:
    cmake -B build
    
    若cmake仍无法自动识别JNI,可手动指定路径(替换为你的JDK实际路径):
    cmake -B build \
      -DJAVA_INCLUDE_PATH=/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home/include \
      -DJAVA_INCLUDE_PATH2=/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home/include/darwin \
      -DJAVA_AWT_INCLUDE_PATH=/Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home/include
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:57:13