我有一台装有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 架构?