
mac下编译openjdk8?so easy!
安装GCC 4.9: 配置GCC的可执行文件: 创建alias:
发布日期:2025-04-11 17:32:19
浏览次数:8
分类:精选文章
本文共 1975 字,大约阅读时间需要 6 分钟。
编译JDK的完整指南:macOS环境下的实践经验
编译Java Development Kit (JDK) 可能会遇到各种问题,尤其是对于编译新手而言。本文将详细记录在macOS High Sierra(10.13.5)环境下编译openjdk8的全过程,分享遇到的问题及解决方法。
环境配置
在开始编译之前,需要先配置好开发环境。以下是具体的配置步骤:
打开终端,编辑~/.bash_profile文件:
vi ~/.bash_profile
在文件末尾添加以下内容:
# 设置语言选项export LANG=C# 使用GCC编译器export CC=gccexport CXX=g++# 禁用clang的严格检查export COMPILER_WARNINGS_FATAL=false# 链接参数export LFLAGS='-Xlinker -lstdc++'# 使用64位数据模型export LP64=1# 允许自动下载依赖export ALLOW_DOWNLOADS=true# 设置并行编译线程数export HOTSPOT_BUILD_JOBS=2# 跳过版本比较export SKIP_COMPARE_IMAGES=true# 使用预编译头文件export USE_PRECOMPILED_HEADER=true# 增量编译export INCREMENTAL_BUILD=true# 选择编译内容export BUILD_JDK=true# 设置编译级别为slowdebugexport SKIP_DEBUG_BUILD=trueexport DEBUG_NAME=debug# 禁用不必要的组件export BUILD_DEPLOY=falseexport BUILD_INSTALL=falseunset JAVA_HOME
保存并执行配置文件:
source ~/.bash_profile
编译过程中的问题及解决方案
一、configure时的错误:GCC compiler is required
在运行configure时,可能会遇到以下错误:
configure: error: GCC compiler is required
错误原因
从XCode 4.2起,Clang已取代GCC成为macOS的默认编译器。因此,在编译时,如果没有安装GCC,会导致此错误。
解决方法
brew install gcc@4.9
sudo ln -s /usr/local/Cellar/gcc@4.9/4.9.4_1/bin/gcc-4.9 /usr/bin/gccsudo ln -s /usr/local/Cellar/gcc@4.9/4.9.4_1/bin/g++-4.9 /usr/bin/g++
alias gcc='/usr/local/bin/gcc'alias g++='/usr/local/bin/g++'
二、configure完成后,make all报错:ordered comparison between pointer and zero
错误原因
这是由于编译器环境的不同导致的。macOS的默认编译器是LLVM,openjdk8默认使用GCC。这种差异会导致某些代码无法兼容。
解决方法
检查代码中有类似以下行:
if (base() > 0) { // 代码逻辑}
将其修改为:
if (base != NULL) { // 代码逻辑}
三、configure完成后,make all报错:X11/Xlib.h file not found
错误原因
缺少X11开发库。
解决方法
安装XQuartz:
brew install --cask xquartz
配置X11头文件:
sudo ln -s /opt/X11/include/X11 /usr/local/include/X11
完成后,重新编译即可解决问题。
最终验证
编译完成后,验证JDK是否正常运行:
build/macosx-x86_64-normal-server-fastdebug/jdk/bin/java -version
如果输出如下内容,表示编译成功:
java version "1.8.0-bridge-1"Java(TM) SE Runtime Environment (build 1.8.0_181-release-x86_64_hotspot_64bit)
总结
编译JDK的过程虽然复杂,但通过合理配置环境变量和解决常见问题,可以顺利完成。在遇到问题时,及时查阅文档或社区,结合实际情况进行调整,是高效解决问题的关键。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月28日 23时38分09秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux--进程状态
2025-04-07
Linux-服务器远程控制
2025-04-07
Linux/CentOS设置全局代理(http)
2025-04-07
Linux——gcc编译器
2025-04-07
Linux——静态库
2025-04-07
Linux下tar bz gz等压缩包的压缩和解压【转自www.bitsCN.com】
2025-04-07
Linux下安装或升级Python 2.7
2025-04-07
Linux下的硬件管理与设备驱动全解析
2025-04-08
Linux下的系统监控与性能调优:从入门到精通
2025-04-08
Linux学习总结(26)——Shell常用命令总结
2025-04-08
Linux学习总结(65)——Linux 服务器安全强化的七个步骤
2025-04-08
Linux安装JDK 17
2025-04-09
Linux安装JMeter进行压力测试
2023-02-04
Linux安装mysql:FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql
2023-02-04
Linux安装Tomcat
2023-02-04
linux审计功能及规则 (audit.rule)
2023-02-04
Linux就这个范儿 第18章 这里也是鼓乐笙箫 Linux读写内存数据的三种方式
2023-02-04
Linux工作笔记023---Centos7 查看系统安装了什么软件_多少软件
2023-02-04
Linux工作笔记024---Centos7 下查看本机公网IP
2023-02-04
Linux工作笔记040---Centos8.2安装mysql5.7.18_已经测试成功
2023-02-04