0

我正在尝试构建一组示例,演示如何使用 RInside 为 Ruby 和其他语言提供快速准确的统计和数值函数。就 MRI(标准 Ruby 解释器)而言,使用 RInside 和 rice gem(相对)很容易解决这个问题。

我还想演示通过 Ruby 外部函数接口进行交互。但是,当我尝试这样做时,我看到了表单错误

无法打开库 /home/jwl​​m/rubinius-ffi-test/ffi-code/libsimplemath.so - /home/jwl​​m/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/jwl​​m/rubinius-ffi-test/ffi-code/libsimplemath.so:未定义符号:_ZN7RInsideC1EiPKPKcbbb

如果我还没有包括 libRInside,这将非常有意义,但我是。

4

0 回答 0