写在前面
为什么单独列出来这个问题呢?是因为其他问题网上都有很多类似的示例和解决方法,比如Cygwin 版本不对,包不对等等,这些我就不再写了。
c编译器找不到的问题花了我很多时间去找资料,功夫不负有心人,让我找到了结局方法,所以写下来记录。
问题
按照之前的流程安装好所必需的环境:cygwin 、VS2010、freeType 2.7后,开始对openJDK进行编译。
1 | cd /cygdrive/c/openJDK8/jdk8u |
编译过程中发现了一个报错:
具体错误如下
1 | configure: The C compiler (located as |
解决
经过查阅资料找到了简单的解决方法:https://bugs.openjdk.java.net/browse/JDK-8212986#,所以现在有两个解决思路
思路一
按照文章后面提供的patch脚本里的内容修改openJDK的bash命令,风险较大,具体修改地方如下:
1
2
3
4
5
6
7
8
9
10
11
12diff -r 70fab3a8ff02 make/autoconf/toolchain.m4
--- a/make/autoconf/toolchain.m4 Tue Jul 16 07:29:12 2019 +0900
+++ b/make/autoconf/toolchain.m4 Tue Jul 16 10:51:44 2019 +0200
@@ -459,7 +459,7 @@
# Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
COMPILER_VERSION_OUTPUT=`"$COMPILER" 2>&1 | $GREP -v 'ERROR.*UtilTranslatePathList' | $HEAD -n 1 | $TR -d '\r'`
# Check that this is likely to be Microsoft CL.EXE.
- $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Microsoft.*Compiler" > /dev/null
+ $ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Microsoft" > /dev/null
if test $? -ne 0; then
AC_MSG_NOTICE([The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler.])
AC_MSG_NOTICE([The result from running it was: "$COMPILER_VERSION_OUTPUT"])思路二
可以看到根本原因是因为openJDK不支持非英语版vs,我们卸载中文版的,重新下载英文版的安装即可