楼主: ruixue4425
3762 2

[问答] 有木有人用过Rinside这个东东啊?求探讨指教! [推广有奖]

  • 0关注
  • 0粉丝

高中生

10%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
131 点
帖子
13
精华
0
在线时间
18 小时
注册时间
2011-9-19
最后登录
2012-6-17

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
有木有人用过Rinside这个东东啊?求探讨指教!
最近研究R,老师希望在VS环境下,用C++调用R的统计包做统计。求高人指教!Rinside怎么用?它的头文件在C++里有自带的么?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Inside side sid IDE 有木有 统计

沙发
DM小菜鸟 发表于 2015-2-9 18:23:48 |只看作者 |坛友微信交流群
一、   安装R,并下载R的源代码
  
安装R:从R的网站下载并运行R-3.0.1-win32.exe,记住安装路径如:C:\Program Files\R\R-3.0.1。
从R的网站下载R-3.0.1.tar.gz,并解压缩,将解压后的文件全部copy到安装路径C:\Program Files\R\R-3.0.1下,选择覆盖重复的目录
   
二、   安装对应版本的Rtools

运行Rtools30.exe,选择默认安装路径,组件全部安装。注意:选上选项,即改变系统环境变量
   
三、   用MinGW编译Rmath

3.1 生成 Rmath.dll

用cmd进入安装路径C:\Program Files\R\R-3.0.1下
cd C:\Program Files\R\R-3.0.1
cd src\include
make -f Makefile.win config.h Rconfig.h Rmath.
如果报错,../gnuwin32/MkRules找不到,去对应目录下,有个同名的文件MkRules.rules,把后缀去掉
如果有个rmath.h找不到,从include 拷贝到src/include
cd ../nmath/standalone
make -f Makefile.win

然后看到一大串的编译输出,并在standalone文件夹下看到Rmath.dll 和 Rmath.def

3.2 生成Rmath.dll

首先为了用pexports,要安装MinGW的插件:
(如果没有设置好环境变量会找不到命令: )
下载mingw-utils-0.3.tar.gz(pexports在这里面),直接解压缩到c:\Rtools\MinGW\里面就可以了。运行:
pexports Rmath.dll > Rmath.exp
lib /def:Rmath.exp /out:Rmath.lib
//貌似 lib 这个命令也会改Rmath.exp文件,所以只能执行一次,否则第二次生成出的lib文件是错误的
//MACHINE这个开关也很重要,要和c++工程的设置一致,否则编译会报load error错误

(说明1:
这里的lib是visual studio C++的命令,如果查不到这个命令, 请将安装visual studio C++的bin添加到环境变量PATH中,方法如下:
在Path后面加上如我的系统中是C:\Program Files\Microsoft Visual Studio 9.0\VC\bin。
说明2:如果运行后跳出"没有找到mspdb100.dll。。。。。"
请将visual studio C++安装目录下的,如我的系统中C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\下的msobj100.dll、mspdb100.dll、mspdbcore.dll、mspdbsrv.exe拷贝到C:\Program Files\Microsoft Visual Studio 9.0\VC\bin下面)
然后我们就得到Rmath.lib了
  
四,在visual C++工程中调用Rmath库

4.1 建立工程
   
建立一个win32 console的空的工程,Linker->Additional Libraries中添加Rmath.lib所在目录,工程Linker->Additional Dependencies中添加Rmath.lib,将Rmath.dll拷贝到工程的目录下,然后添加一个内容如下的main.cpp,就可以编译运行了:
main.cpp 内容:
#define MATHLIB_STANDALONE 1  //宏定义一定要,参考Rmath.h
#include <Rmath.h> //如果Rmath.h在默认系统路径下可以这样写,如果不在则包括目录路径

#include <stdio.h>
int main()
{
     printf("hello\n");
     double x = fmax2(3,2);
     double y = 0;
     printf("x = %lf",x);
return 0;
}

使用道具

藤椅
佳佳_34 发表于 2016-7-6 14:43:12 |只看作者 |坛友微信交流群
亲,你这个回复是亲试的吗? 我在make -f Makefile.win config.h Rconfig.h Rmath.的时候找不到Makefile.win,虽然目录中有该项。请赐教!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-28 02:43