【问题标题】:GCC GCJ needs ECJ and Other Libraries?GCC GCJ 需要 ECJ 和其他库吗?
【发布时间】:2011-04-11 18:33:46
【问题描述】:

所以我刚刚从here(显然是 GCC 4.7)下载了mingw-w64-bin_i686-mingw_20110410.zip,发现它有一个最新版本的 GCJ 编译器。

我尝试使用它,但显然 gcj 需要 ecj1.exe,这是 Java 的 Eclipse 编译器...那么,我在哪里可以找到兼容的版本ECJ 的二进制文件和所需的相关 Java 库(libgcj 等)?

理想情况下,这可以在 MinGW-w64 项目页面上找到,但它似乎不存在。

(我已经尝试从稍旧的 GCC 版本复制它们;它不起作用。)

【问题讨论】:

    标签: gcc gcj


    【解决方案1】:

    openSUSE 版本的 gcc 的原因基本上是这样的: 如果gcc编译的configure步骤没有找到ecj.jar 文件,在刚刚构建的gcj时会丢失ecj1, 叫做。 ecj.jar 可以取自ftp://sourceware.org/pub/java/ecj-4.8.jar 例如。

    两个选项是:

    i) 将 ecj.jar 放入 $HOME/share/java/ecj.jar,重新配置 gcc ./configure .... --with-ecj-jar=$HOME/java/ecj.jar 并重新编译 gcc。未来使用该 gcc 的编译将不需要 ecj1 .

    ii) 将 ecj.jar 放入 $HOME/share/java/ecj.jar 并创建 ecj1(.exe) 通过像这样的编译 gcj -o$HOME/bin/ecj1(.exe) --main=org.eclipse.jdt.internal.compiler.batch.GCCMain $HOME/share/java/ecj.jar 假设 $HOME/bin 在 PATH 中以供后续调用 gcj。

    这里实际上“损坏”的是 gcc 4.8.* 没有发货的事实 默认情况下,在某个标准位置使用 ecj.jar。

    【讨论】:

    • 选项 i) 为我工作,但我所要做的就是将 ecj*.jar 文件复制到 \cygwin\usr\share\java\ecj.jar (没有版本)。选项 ii) 也有效,但 ecj1.exe 应放置在 \cygwin\lib\gcc\i686-pc-cygwin\4.9.2\ (或您拥有的任何版本)中,但已经存在一个只运行 jar 文件的存根从选项 i) 中复制
    【解决方案2】:

    这是一个非常旧的 MinGW-w64 工具链版本。

    我建议下载我的一个版本,我有报告说 gcj 可以工作(没有 libgcj,这在 Windows 上不起作用),尽管我似乎找不到我很久以前讨论过的链接一个用户。用户的case跟创建JNI接口什么的有关系,不需要libgcj。

    我的旧版本可以在 here for 32-bithere for 64-bit 找到。我检查了 4.8 版本,它包含 gcj 编译器。

    【讨论】:

      【解决方案3】:

      您会反对下载源代码并构建它吗?我查看了 basicadvanced 构建文档中的构建文档。我没有看到有关 GCJ 编译器或 ECJ 的任何信息,但您需要 gcc 4.5.1 才能构建它。

      【讨论】:

      • 并不是真的“反对”它,但我可能已经花费了超过 24 小时(每天几个小时)在 Windows 和 Ubuntu 上编译 GCC 的各种组件,所有这些组件都有遇到了失败。中间总是会出现一些随机错误,因此说明无济于事......我宁愿只下载某人真正知道如何构建的二进制文件,而不是浪费时间尝试编译我需要的每个程序。 :\ 顺便说一句,我在哪里可以找到 ECJ 的来源?
      • 听起来您的 gcc 工具链可能不正常。仓库的主干在这里:mingw-w64.svn.sourceforge.net/viewvc/mingw-w64/trunk。您是否尝试过从 Ubuntu 存储库在 Ubuntu 上安装二进制文件?显然它几乎是自包含的(没有其他依赖项)。
      • 呃,我只是厌倦了花费这么多时间来构建它......也许我会在一两个月内再试一次,但现在我已经放弃了。我尝试重新下载不同的版本和所有内容,但没有任何效果,每次我都会收到不同的错误,有时是关于随机头文件,有时是关于缺少库等......不幸的是,这对我来说并不是一个解决方案谢谢你的建议。
      • 哦,好吧!有时你得到熊,有时熊得到你。无论如何,如果您暂时远离它,也许您会遇到解决方案!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-18
      • 1970-01-01
      相关资源
      最近更新 更多