使用CLion调试OpenJDK14:无法加载CMake项目

问题描述

我下载了OpenJDK14的源代码并将其放在\home\yuanfang\jdk14中,并且在运行bash configure --disable-warnings-as-errorsmake images之后,我成功地构建了OpenJDK14,而新构建的JDK在home\yuanfang\jdk14\build\linux-x86_64-server-release\jdk中。顺便说一句,我正在使用Ubuntu 20.04 LTS。

然后,我想使用CLion IDE调试OpenJDK14。我使用的是CLion 2020.2,请执行以下步骤:

  1. 打开CLion后,我选择从源代码创建新的CMake项目,然后选择目录\home\yuanfang\jdk14,它是jdk项目的根目录。
  2. 我更改了运行/调试配置,使其看起来像这样:

    Run/Debug configurations

  3. CLion自动创建一个CMakeLists.txt,但是该文件无法正常工作,因此在进行谷歌搜索之后,我在https://github.com/ojdkbuild/ojdkbuild/blob/master/src/java-14-openjdk/CMakeLists.txt处找到了正确的CMakeLists.txt。然后,我使用正确的CMakeLists.txt改写旧的\home\yuanfang\jdk14
  4. 我下载了整个存储库(即github.com/ojdkbuild/ojdkbuild),将其解压缩并放入ojdkbuild-master中。 如下所示,CMake Error at CMakeLists.txt:19 (include): include Could not find load file: /home/yuanfang/jdk14/../../resources/cmake/ojdkbuild_common.cmake CMake Error at CMakeLists.txt:21 (include): include Could not find load file: /home/yuanfang/jdk14/../../resources/cmake/version.cmake CMake Error at CMakeLists.txt:93 (add_subdirectory): add_subdirectory given source "/home/yuanfang/jdk14/../../deps/rhino/scripting_tasks" which is not an existing directory. CMake Error at CMakeLists.txt:98 (ojdkbuild_add_subdirectory): UnkNown CMake command "ojdkbuild_add_subdirectory". -- Configuring incomplete,errors occurred! See also "/home/yuanfang/jdk14/cmake-build-debug/CMakeFiles/CMakeOutput.log". Cannot get compiler @R_420_4045@ion: Compiler exited with error code 1: /usr/bin/cc -xobjective-c -I/home/yuanfang/jdk14/build/linux-x86_64-server-release/hotspot/variant-server/gensrc/adfiles......./loading/LibraryLoader/jar_src -g -fpch-preprocess -v -dD -E Using built-in specs. COLLECT_GCC=/usr/bin/cc OFFLOAD_TARGET_NAMES=nvptx-none:hsa OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-10ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2) COLLECT_GCC_OPTIONS='-I' '/home/yuanfang/jdk14/build/linux-x86_64-server-release/hotspot/variant-server/gensrc/adfiles' '-I' '......'-g' '-fpch-preprocess' '-v' '-dD' '-E' '-D' '___CIDR_DEFinitioNS_END' '-mtune=generic' '-march=x86-64' cc1obj -E -quiet -v @/tmp/cci3XM6r -imultiarch x86_64-linux-gnu -D ___CIDR_DEFinitioNS_END /tmp/compiler-file5929385022787926768 -mtune=generic -march=x86-64 -fpch-preprocess -g -fworking-directory -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -dD cc: Fatal error: cannot execute 'cc1obj': execvp: No such file or directory compilation terminated. [Failed to reload] 是新添加文件夹。

    enter image description here

  5. 我重新加载了CMake项目,但是发生了一些CMake错误(如下所示),为什么CLion无法找到那些文件? javaI谷歌搜索,但找不到任何有效的@R_404_6280@案。有什么我可以做或参考的吗?预先感谢。
      u1         u2     jaccard   adamic    p   link    pref
 0  alekseev    wyderka    0.0     0.0     0.0    1     2
 1  alekseev    fan        0.0     0.0     0.0    1     6
 2  alekseev    fermi      0.0     0.0     0.0    1     4

解决方法

  1. 步骤:查看此项目:https://github.com/ojdkbuild/ojdkbuild.git
  2. 步骤:将OpenJDK14的源代码放入ojdkbuild / src /
  3. 步骤:将reousrces目录和CMakelists.txt复制到OpenJDK14
  4. 步骤:重新编译openjdk并将项目导入到CLin