Rinternals.hの LibExtern? をとれば、コンパイルはできるが、
//LibExtern SEXP R_NamesSymbol; /* "names" */
SEXP R_NamesSymbol; /* "names" */
今度は実行時のエラーになる。
/*
Rtools27 On Windows
> gcc -I../include -Wall -O2 -c RMeCab.c -o RMeCab.o
> ar cr RMeCab.a *.o
> g++ --shared -s -o RMeCab.dll RMeCab.def RMeCab.a
-Lc:\workhome -llibmecab -lR
あるいは
RCMD SHLIB RMeCab.c -llibmecab
*/
setwd("c:/workhome")
dyn.load("RMeCab.dll")
`RMeCab` <-
function(str, mypref = 0, myint = 512){
.Call("RMecab", as.character(str), as.integer(mypref),
as.integer(myint))
}
- 解決。VisualStudio?のプロジェクトで「空のプロジェクト」というのは、「空のWin32プロジェクト」のことであった。ここが参考になった。プロジェクトを「クラスライブリ」に変えて、ここの手順をふんだ結果、実行可能となった。だからWindowsはいやなんだ。。。