【问题标题】:32-bit and 64-bit error in building R package which calls Fortran构建调用 Fortran 的 R 包时出现 32 位和 64 位错误
【发布时间】:2018-02-05 21:34:35
【问题描述】:

我正在尝试构建一个在 Windows 系统中调用 Fortran 代码的 R 包。 R BUILD 运行良好,但我在 R CHECK 或 R INSTALL 中遇到了一些错误。

要在 Windows 系统中编译 Fortran 代码以获取 dll 文件,我必须指定 x64(64 位)或 i386(32 位)。但是当我在R CHECK中使用x64编译的dll文件时,会报错:

inDL(x, as.logical(local), as.logical(now), ...) 中的错误: 无法加载共享对象“C:/Program Files/R/R-3.3.1/bin/catch.Rcheck/catch/libs/i386/tensor.dll”: LoadLibrary 失败: %1 不是有效的 Win32 应用程序。

同样,如果我使用i386编译的dll文件,64位安装也会报错。

我想知道有没有什么方法可以指定使用 x64 中的 dll 来构建适用于 64 位机器的软件包,以及使用 i386 中的 dll 来构建适用于 32 位机器的软件包。谢谢!

【问题讨论】:

  • 我也有同样的问题。我想使用 64 位 R,因为我在 32 位 R 中的内存不足,但我不得不使用后者来链接我的 Fortran DLL

标签: r fortran package


【解决方案1】:

已经有一段时间了,但以防万一人们有同样的问题。这是一个设计问题,需要单独构建 32 位和 64 位编译文件。解决方法是构建64位版本,需要将i386移出文件夹。

【讨论】:

    猜你喜欢
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-01
    • 2014-11-27
    相关资源
    最近更新 更多