Prof. Ripley,
Thank you for your suggestion.
In the mean time, I had just found a solution and was going to send a
mail saying that the problem was solved
when I read your answer, and others.
The 'ddl' is obviously not the actual output, DOS doesn't allow copy&paste.
The solution is to use the compiler directly,
gcc -c myfun.c -o myfun.o
gcc -LC:/PROGRA~1/R/R-214~1.0/bin/x64 -shared myfun -o myfun64.dll
Note that I didn't write '-lR' and it worked. In fact, when I've tryied
to, it gave an error again, it doesn't recognize .../bin/x64/R.dll
(-L is overriden by R CMD SHLIB, it puts i386 in the end...)
Once again, thank you for your suggestion, I'll give it a try.
Rui Barradas
Citando Prof Brian Ripley <rip...@stats.ox.ac.uk>:
What is R.ddl? Or is that not the actual output?
In any case, it isn't going to work unless you run 64-bit 'R', and
my guess is that you used 32-bit 'R' to do this. Make sure you use
..../bin/x64/R CMD
and you do not need the -L....
On Mon, 12 Dec 2011, ruipbarra...@sapo.pt wrote:
I am trying to build a C language DLL and it works well with i386
but when I compile with it substituted
by x64, like the FAQ page says, the result is an error message:
which 'FAQ page' (which FAQ, which page ...)?
C:/PROGRA~1/R/R-214~1.0/bin/x64/R.ddl: file not recognized : File
format not recognized
collect2: ld returned 1 exit status
How can I solve this? The problem is with R 2-14.0 and 2-13.0
The complete source code is
/*
* myfun.c
*/
#include <stdio.h>
#include <R.h>
#include <Rinternals.h>
#include <R_ext/Rdynload.h>
void myfn(double *x){ *x += 1; }
The DLL is build like this:
R CMD SHLIB -LC:/PROGRA~1/R/R-214~1.0/bin/x64 -lR myfun.c -o myfun64.dll
and get the error message above.
The R code:
#
# myfun.R: this works with i386, but not with x64
#
dyn.load("myfun64.dll")
f <- function(x) {.C("myfn", x=as.double(x))$x}
f(1)
f(1000)
dyn.unload("dllmain.dll")
I am trying to build a package, or at least a set of functions, and
performance is sometimes a problem.
Thank you,
Rui Barradas
[[alternative HTML version deleted]]
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
--
Brian D. Ripley, rip...@stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel