我正在尝试使用 system2() 在我的 R 程序中运行已编译的 cpp 文件。cpp 的文档表明它只是一个大命令,所以我认为我不应该在 sys2 中使用 stdout 或 stder 选项。
- 所需的 network.nodes 和 network.edges 文件位于 /files 文件夹中
- 我可以运行 system2() 行,但它不输出任何内容
- 我之前编译了 socialrank.cpp 并使用 Cygwin 或 cmd 提示符将其放入 /exe 文件夹中(g++ -o socialrank socialrank.cpp)
指导: - 要运行算法,只需运行:./socialrank summary_stats.txt graphname > debug.log(您需要文件 graphname.nodes 和 graphname.edges)
我的代码(如果您需要查看更多信息,请告诉我):
> nodelist %>% write_delim("./files/network.nodes", col_names = F)
> edgelist %>% write_delim("./files/network.edges", col_names = F)
> #system("../exe/socialrank ../files/summary_stats.txt ../files/network") #I think this code is for macs??
> system2("./exe/socialrank ./files/summary_stats.txt ./files/network") #Is this how you correct relative file directories for Windows?
所以没有任何东西被输出到 /files 文件夹中。我不知道 CPP 文件是否正在运行,没有导出文件,还是将它们导出到其他地方?
如果您对编译、调用 cpp 程序或 system2 函数有任何建议,请告诉我。我也听说过 sys 和 processx 包,所以不确定是否有更好的方法来调用可能跨操作系统工作的系统文件?
非常感谢你的帮助!!