程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++中調用R Language的類庫

C++中調用R Language的類庫

編輯:C++入門知識

一、   安裝R,並下載R的源代碼   點擊下載R語言下載 官方安裝版
安裝R:從R的網站下載並運行R-2.10.1-win32.exe,記住安裝路徑如:C:\Program Files\R\R-2.15.2。
從R的網站下載R-2.15.2.tar.gz,並解壓縮,將解壓後的文件全部copy到安裝路徑C:\Program Files\R\R-2.15.2下,選擇覆蓋重復的目錄
二、   安裝對應版本的Rtools
運行Rtools210.exe,選擇默認安裝路徑,組件全部安裝。注意:選上選項,即改變系統環境變量
三、   用MinGW編譯Rmath
3.1 生成 Rmath.dll
用cmd進入安裝路徑C:\Program Files\R\R-2.15.2下
cd C:\Program Files\R\R-2.15-2
cd src\include www.2cto.com
make -f Makefile.win config.h Rconfig.h Rmath.
如果報錯,../gnuwin32/MkRules找不到,去對應目錄下,有個同名的文件,把後綴去掉
如果有個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:如果運行後跳出"沒有找到mspdb80.dll。。。。。"
 
請將visual studio C++安裝目錄下的,如我的系統中C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\下的msobj80.dll、mspdb80.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 Dependencies中添加Rmath.lib,將Rmath.dll拷貝到工程的目錄下,然後添加一個內容如下的main.cpp,就可以編譯運行了:
 
main.cpp 內容:
#define MATHLIB_STANDALONE 1  //宏定義一定要,參考Rmath.h
#include <Rmath.h>
#include <stdio.h>
int main(int argc, char** argv)
{
     printf("hello\n");
     double x = fmax2(3,2);
     double y = 0;
     printf("x = %lf",x);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved