所以我试图从源代码编译openjdk8,但是我在编译过程结束时遇到了丢失的文件问题......
这是我使用的软件:
以下是我正在阅读的手册:
通过所有这些指南,我可以让它编译,但是在构建图像 - 步骤中,我收到一些错误,一些文件丢失(并且它们确实丢失了),这使我认为在构建期间出现了问题......
有几点我担心我可能会做错事......
现在我使用cygwin 2.8版。 openjdk配置脚本需要cygwin版本> 1.7但是无法识别2.8大于1.7并且抛出错误,所以我调整了脚本(使构建工作像2个月前一样)...
我的configure命令如下所示:
./configure --disable-ccache --with-freetype=/cygdrive/c/freetype
也许我需要更多参数才能使其工作(请注意,我已将自编译的make可执行文件复制到cygwin bin文件夹中,因此我不需要提供其位置)
我宁愿尝试专业试用版,但它在任何地方都找不到......(除了种子......)我强烈认为Express版本不适合openjdk版本。我也错过了ammintrin.h文件,但是通过在Visual Studio安装的include文件夹中创建空头文件很容易解决。
我的基本建设程序是:
然而,在这里结束:
有没有人知道如何解决这个问题?
答案 0 :(得分:1)
因此,经过几天的任务,我唯一的办法是忽略丢失文件的错误并继续提取文件...这导致仍在工作的jdk图像,我目前使用。我的猜测是错误来自Oracle boot jdk。由于我正在编译openjdk,因此无法在其标头中找到oracleJDK文件,从而产生错误。
所以,如果有人也得到同样的错误,请尝试忽略丢失的文件错误并继续构建图像。
答案 1 :(得分:1)
我找到了正确的解决方法:使用Cygwin安装程序,将Grep降级到2.27,可以正确忽略CRLF行尾。
setup-x86_64.exe
)我发现自己和您处于同一位置,除了我需要OpenJDK构建具有可重复性之外,因此“反复运行make直到完成”是不可接受的解决方案。
通过一些实验,我找到了根本原因:
grep
失败,因为正在处理的文件具有Windows行尾(CRLF)fixpaths
)生成的,该应用程序发出平台本地行尾。fixpaths
导致我进入了一个旧的OpenJDK电子邮件线程,该线程报告某些用户遇到了相同的问题,并通过降级对其进行了修复。这给了我尝试降级grep的想法。我这样做了,而且行得通。