【问题标题】:Use Maven to compile a Fortran subroutine (per-platform) and link to JNA使用 Maven 编译 Fortran 子例程(每个平台)并链接到 JNA
【发布时间】:2013-01-08 00:46:11
【问题描述】:

我有一个 Java 库需要调用一些 fortran 子例程 (that are pretty complicated, and should not be re-implemented in java)。 fortran 编译器将生成一些特定于平台的 .so 文件。然后我想将这些连接到 JNA 以便能够从 Java 调用它们。

我在这里找到了从 JNA 调用 fortran 的资源,这似乎还不错:http://www.javaforge.com/wiki/66061

但是,我的问题是我是否可以让 Maven 编译子例程并将生成的库文件放在 target/ 或类似的地方,并能够从 JNA 自动获取它们。如果我使用 Makefile,我觉得我可以毫不费力地做到这一点,但不知道如何让 Maven 做到这一点。

此外,我正在使用 m2e,这是 eclipse 的 maven 插件,所以似乎任何可能单独工作的 maven 插件的兼容性都不太可能与 m2e 兼容。

【问题讨论】:

    标签: java maven compilation fortran jna


    【解决方案1】:

    我将重点介绍特定于 Maven 的方法。我真的不知道 m2e,但如果你让基本的 maven 工作,那么任何 ide 都应该服从它。希望这会有所帮助。

    exec plugin 允许您执行外部程序。因此,如果您认为可以使用 makefile 快速完成它,那么这可能是最简单的方法。你最终会更多地依赖环境而不是插件,这不是 maven 方式。但它可能会完成工作。

    谷歌教授回复了this article,看起来有点像你想做的。很多主题都是围绕编译用于 Java 的 C 库。所以它应该有点接近(即使你正在调用不同的编译器等)。有足够多的人构建 there's a plugin for that 的原生库,尽管它再次关注用 C 而不是 Fortran 编写的库。

    祝你好运!

    【讨论】:

    • Fortran (77?) 和 C 应该没有太大区别。您甚至可以为两者使用相同的 GCC。只需注意名称修饰。
    猜你喜欢
    • 2014-01-18
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2021-05-27
    相关资源
    最近更新 更多