R:动态加载64位DLL时LoadLibrary失败时提到的Win32错误

时间:2016-08-02 02:19:43

标签: r gcc dll 64-bit 32bit-64bit

我有一台装有Windows 8.1 64位操作系统的64位架构笔记本电脑。

我编译foo.c,它有一个简单的函数 使用gcc:

打印传递的字符串
D:\>\r64\r-3.3.0\bin\r --arch 64 CMD SHLIB foo.c
gcc -m64 -I"D:/r64/r-3.3.0/include" -DNDEBUG     -I"D:/R64/R-    3.3.0/extsoft/include"     -O2 -Wall  -std=gnu99 -mtune=core2 -c foo.c -o foo.o

gcc -m64 -shared -s -static-libgcc -o foo.dll tmp.def foo.o -LD:/R64/R-3.3.0/extsoft/lib/x64 -LD:/R64/R-3.3.0/extsoft/lib -LD:/r64/r-3.3.0/bin/x64 -lR

然后我在R:

中动态加载它
dyn.load("foo.o")

我收到以下错误:

  

inDL(x,as.logical(local),as.logical(now),...)出错:     无法加载共享对象' D:/R/classification/InC/foo.o':     LoadLibrary失败:%1不是有效的Win32应用程序。

为什么在64位编译代码时错误中提到了Win32 架构?

0 个答案:

没有答案