У меня есть код C ++ (привет мир код, который печатает «привет мир!» В текстовом файле).
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, const char * argv[]) {
// insert code here...
ofstream myfile;
myfile.open ("Hello_World.txt");
myfile << "Hello World! This is a test.\n";
myfile.close();
return 0;
}
Я хочу посмотреть, возможно ли скомпилировать мой код C ++ в shinyapp.io, а затем выполнить скомпилированный файл на сервере и получить файл «Hello_World.txt»? Если нет, то как мне скомпилировать мой код на локальном компьютере, чтобы он мог выполняться в shinyapp.io после передачи скомпилированного кода на сервер?
Меня больше беспокоит этот подход (компиляция кода на Fortran или C ++ на локальной машине и запуск на shinyapp.io). Моя цель — расширить подход к более сложному коду в будущем.
Вы можете без проблем скомпилировать cpp-файлы, увидеть принятый код & развернут для shinyapp.io:
app.R:
library(Rcpp)
library(shiny)
Rcpp::sourceCpp("test_rcpp.cpp")shiny::shinyApp(
ui = fluidPage(
titlePanel(hello()),
sidebarLayout(
sidebarPanel("content of Hello_world.txt"),
mainPanel(readChar("Hello_World.txt", file.info("Hello_World.txt")$size))
)
),
server = function(input, output, session) {
}
)
test_rcpp.cpp:
#include <Rcpp.h>
#include <iostream>
#include <fstream>
using namespace Rcpp;
using namespace std;
// This is a simple example of exporting a C++ function to R. You can
// source this function into an R session using the Rcpp::sourceCpp
// function (or via the Source button on the editor toolbar). Learn
// more about Rcpp at:
//
// http://www.rcpp.org/
// http://adv-r.had.co.nz/Rcpp.html
// http://gallery.rcpp.org/
//
// [[Rcpp::export]]
CharacterVector hello() {
ofstream myfile;
myfile.open ("Hello_World.txt");
myfile << "Hello World! This is a test.\n";
myfile.close();
return "Hello, World is saved";
;
}// You can include R code blocks in C++ files processed with sourceCpp
// (useful for testing and development). The R code will be automatically
// run after the compilation.
//
/*** R
*/
Обновление:
Я наконец смог выполнить скомпилированный код на shinyapp.io. Произошла ошибка в разрешении файла, и я получал permission denied
ошибка в логе shinyapp.io Пока я не узнал, что мне нужно установить разрешение для скомпилированного кода на сервере. R (с system()
команда) во время выполнения на shinyapp.io, а не на моей локальной машине. Спасибо всем за ваши комментарии.