从R运行.exe:Linux而非Windows上的状态127警告

我正在.exe使用R从R 调用system("script.exe object")

我懂了Warning: running command had status 127。我知道这意味着.exe找不到该文件。

我在窗户上。当我使用它shell而不是system它的魅力时。但是,我正在设计一个Shiny应用程序,该应用程序将部署在Linux环境(shinyapps.io)中。这就是为什么我需要使用system

在Windows上,它可以system(paste("cmd.exe /c", "script.exe object"), intern = FALSE,

wait = TRUE)按照此处的建议使用。但是当我在Linux上部署应用程序时却没有。

在Windows本地上,如果我systemsystem2:替换system2(paste("cmd.exe /c", "script.exe

object"), wait = TRUE),它会status 127发出警告,并且 的

在此处创建可复制的示例很困难,但是如果需要,我可以尝试。请告诉我。

上下文:基本上.exe是一个黑匣子(编译的C++代码),它使用.txt文件作为输入并输出另一个.txt文件。我正在使用R将.txt文件转储到当前工作目录中,然后回读由.exe(在.exe存储该文件的当前工作目录中创建的)生成的.txt文件。

回答:

问题实际上源于以下事实:.exe文件仅是Windows的可执行文件。它在Linux环境中不是开箱即用的(您可以使用WINE,但是在我的情况下这是不可能的,因为我是从R内部调用可执行文件的,我sudo在虚拟机所使用的虚拟机上没有任何权限或任何权限。我的应用的主机)。因此,我在Linux虚拟机上编译了使用g

编写的c 代码,并使用了.out文件而不是.exe

然后在我的R脚本中,我只需要以下两个调用:

system("chmod a+x script.out") # to make Linux understand that the file is an

executablesystem("./script.out object") # to run the script

以上是 从R运行.exe:Linux而非Windows上的状态127警告 的全部内容, 来源链接: utcz.com/qa/402141.html

回到顶部