MAC编译OpenJDK8:详细步骤及问题解决办法(含独家解决办法)

简介: MAC编译OpenJDK8:详细步骤及问题解决办法(含独家解决办法)

 参考:


MacOS 10.15编译openjdk8u详细过程_lizhengjava的博客-CSDN博客_macos 编译openjdk


Mac上编译OpenJDK过程记录 - 活在夢裡 - 博客园


安装JDK8

MAC下载安装JDK_柳鲲鹏-CSDN博客_mac下载jdk


安装brew

MAC正确简单安装brew_柳鲲鹏-CSDN博客


安装各种工具

需要什么安装什么,不需要可以不安装。有些安装跟老版本的xcode可能有冲突。


sudo xcode-select --install

brew install freetype

brew install mercurial

brew install ant

brew install ccache

brew install autoconf

brew install llvm

brew install binutils

gcc、g++


安装xcode

在应用商业中安装。


下载源码

# 经常失败
hg clone http://hg.openjdk.java.net/jdk8u/jdk8u-dev/

建议早上下载github,非常快:


GitHub - AdoptOpenJDK/openjdk-jdk8u: JDK8u mirror from mercurial


修改脚本hotspot/make/bsd/makefiles/gcc.make

(无必要?)hotspot/make/bsd/makefiles/gcc.make注释:


# Compiler warnings are treated as errors
# ifneq ($(COMPILER_WARNINGS_FATAL),false)
#   WARNINGS_ARE_ERRORS = -Werror
# endif

clang: error: unknown argument: ‘-fpch-deps‘_柳鲲鹏-CSDN博客


修改脚本generate-configigure.sh


configure: The C compiler (located as /usr/bin/gcc) does not seem to be the required gcc compiler._柳鲲鹏-CSDN博客


error: invalid argument ‘-std=gnu++98‘ not allowed with ‘C‘_柳鲲鹏-CSDN博客


编译freetype

MAC编译freetype_柳鲲鹏-CSDN博客_freetype mac


编译

NEW_INCLUDE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1
export   CFLAGS="-I$NEW_INCLUDE"
export CXXFLAGS="-I$NEW_INCLUDE"
NEW_LIB=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib
export LDFLAGS="-L${NEW_LIB}"
export LIBRARY_PATH=$NEW_LIB:$LIBRARY_PATH
export COMPILER_WARNINGS_FATAL=false
make clean
chmod 777 configure
./configure \
    --with-freetype=`pwd`/../freetype-2.10.2
make all

NEW_INCLUDE=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1

export   CFLAGS="-I$NEW_INCLUDE"

export CXXFLAGS="-I$NEW_INCLUDE"

NEW_LIB=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/lib

export LDFLAGS="-L${NEW_LIB}"

export LIBRARY_PATH=$NEW_LIB:$LIBRARY_PATH

export COMPILER_WARNINGS_FATAL=false

make clean

chmod 777 configure

./configure \

   --with-freetype=`pwd`/../freetype-2.10.2

make all


错误

MAC clang: error: include path for libstdc++ headers not found

MAC编译OpenJDK8:clang: error: include path for libstdc++ headers not found(独家解决办法)_柳鲲鹏-CSDN博客


error: ‘&&‘ within ‘||‘ [-Werror,-Wlogical-op-parentheses]/Users/tsit/tsjdk8-project/tsjdk8/hotspot/

MAC编译OpenJDK8:error: ‘&&‘ within ‘||‘ [-Werror,-Wlogical-op-parentheses]_柳鲲鹏-CSDN博客


clang: error: unknown argument: ‘-fpch-deps‘

MAC编译OpenJDK8:clang: error: unknown argument: ‘-fpch-deps‘_柳鲲鹏-CSDN博客


iostream file not found

MAC编译OpenJDK8:iostream file not found(独家解决办法)_柳鲲鹏-CSDN博客


ld: library not found for -lstdc++

MAC编译OpenJDK8:ld: library not found for -lstdc++(独家解决办法)_柳鲲鹏-CSDN博客

目录
相关文章
|
7月前
|
SQL API 流计算
实时计算 Flink版产品使用合集之在Mac M1下的Docker环境中开启SQL Server代理的操作步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
261 1
|
3月前
|
数据采集 中间件 关系型数据库
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
Mac系统通过brew安装mysql5.7后,启动报错的解决办法
156 2
|
3月前
|
Web App开发 数据采集 安全
Mac系统安装chromedriver遇到的问题和解决办法
Mac系统安装chromedriver遇到的问题和解决办法
359 1
|
7月前
|
数据库管理
Mac检出svn checkout报错 svn: E200030: SQLite 编译为 3.39.5,但是运行于 3.39.4
Mac检出svn checkout报错 svn: E200030: SQLite 编译为 3.39.5,但是运行于 3.39.4
327 0
|
7月前
|
Kubernetes NoSQL Java
ChaosBlade常见问题之在mac下编译报checksum mismatch的错误如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
103 0
|
7月前
|
iOS开发 MacOS Python
Mac安装pip报错的解决办法
Mac安装pip报错的解决办法
|
7月前
|
Windows
Mac移动硬盘直接拔掉后,再插上无法显示的解决办法
Mac移动硬盘直接拔掉后,再插上无法显示的解决办法
|
7月前
Mac 打开/关闭 iCloud 后导致桌面文件夹、文档删除,恢复步骤!
Mac 打开/关闭 iCloud 后导致桌面文件夹、文档删除,恢复步骤!
257 0
|
JavaScript 算法 前端开发
Mac下编译dinky-web(踩坑篇)
Mac下编译dinky-web(踩坑篇)
204 0
|
3月前
|
iOS开发 MacOS Windows
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错
Mac air使用Boot Camp安装win10 ,拷贝 Windows 文件时出错