我正在尝试构建一组示例,演示如何使用 RInside 为 Ruby 和其他语言提供快速准确的统计和数值函数。就 MRI(标准 Ruby 解释器)而言,使用 RInside 和 rice gem(相对)很容易解决这个问题。
我还想演示通过 Ruby 外部函数接口进行交互。但是,当我尝试这样做时,我看到了表单错误
无法打开库 /home/jwlm/rubinius-ffi-test/ffi-code/libsimplemath.so - /home/jwlm/rubinius-ffi-test/ffi-code/libsimplemath.so:未定义符号:R_FlushConsole
这是 C++ 代码:
// Simple RInside <-> FFI example
//
// Copyright (C) 2009 Dirk Eddelbuettel
// Copyright (C) 2010 Dirk Eddelbuettel and Romain Francois
// Copyright (c) 2016 John Merrill
#include "R.h"
#include <RInside.h> // for the embedded R via RInside
namespace {
const int argc = 0;
const char *argv = {};
}
extern "C"
bool r_test(double v) {
RInside R(argc, &argv);
return true;
}
链接器使用我能想到的所有库:libR、libpcre、...、libRInside。(如果你真的想要全文,我会把它包括在内,但它没有提供信息。)
加载到 Ruby 2.3.0 或 Rubinius 3.14 失败并出现以下错误:
rinside_test.rb:符号查找错误:/home/jwlm/rubinius-ffi-test/ffi-code/libsimplemath.so:未定义符号:_ZN7RInsideC1EiPKPKcbbb
如果我还没有包括 libRInside,这将非常有意义,但我是。