【发布时间】:2020-02-03 23:28:57
【问题描述】:
我应用 CMake 来生成 Visual Studio 2017 解决方案,以便在 Windows 10 上构建 32 位应用程序。为了创建构建系统,我让 CMake 调用一些 Java 工具来生成一些要编译的代码(应用 Eclipse Modeling框架)。为了找到 Java 本身,我在 find_package(Java) 调用中应用了 CMake finder 模块 FindJava。
我观察到FindJava 在这种情况下会自动选择 32 位版本的 Java,尽管也可以使用 64 位 Java。请注意,当我调用 CMake 为 Visual Studio 2017 x64 生成时,FindJava 返回 64 位 Java。因此,Java 版本似乎取决于使用的生成器的位数。
我的问题是,32 位 Java 有时无法分配足够的堆内存来执行代码生成工具。
为避免这种情况,我希望FindJava 始终找到独立于 Visual Studio 生成器位数的 64 位 Java。
我怎样才能做到这一点?
我目前使用 CMake 3.14,但如果有帮助可以更新。
编辑
我忘了提到我实现了许多开发人员在他们的机器上使用的 CMake 构建系统。所以我不希望在构建机器上假设 32 位和 64 位 Java 安装的固定路径。
【问题讨论】: