The attached code is compiled properly. The error happens at the linking
stage.

It seems that R shared library is not built by configure/make.


2007/10/14, Dirk Eddelbuettel <edd@debian.org>:
>
>
> On 14 October 2007 at 05:58, Wang Chengbin wrote:
> | I am trying to use the R API to call optim functions (nmmin, vmmin,
> lbfgsb,
> | etc.) through a C program but I couldn't find the shared library to link
> | under the R-2.6.0 build which is compiled under Linux (REL5).
>
> You can't just call an _R_ function from a _C_ program as you do below.
>
> | extern int Rf_initEmbeddedR(int argc, char *argv[]);
> | int main()
> | {
> |   char *argv[]= {"nmminDemo", "--gui=none", "--silent"};   const int
> argc =
> | 3;
> |
> |   double initial[1] = {1.5};
> |   double result[1];
> |   double value;
> |   int convergenceCode;
> |
> |   /*
> |    * The following values are based on the help
> |    * page for optim.
> |    */
> |
> |
> |   const double abstol = 1e-16;
> |   const double reltol = 1e-8;
> |   const double alpha = 1.0; /* reflection factor */   const double beta
> =
> | 0.5; /* contraction factor */   const double gamm = 2.0; /* expansion
> factor
> | */   const int trace = 0; /* tracing on */
> |   int fncount;
> |   const int maxit = 10000;
> |   Rf_initEmbeddedR(argc, argv);
> |
> |   nmmin(1, initial, result, &value, parabola,
>
> Not a function at the C level.
>
> You need to rethink what you want to do, and how you go about it. Go back
> to
> the R Extensions manual, or look for example at Rserve by Simon which
> allows
> you to 'think in terms of R functions' but access them via a network layer
> (which can be, which doesn't have to be, on the same machine).
>
> Hope this helps,  Dirk
>
> --
> Three out of two people have difficulties with fractions.
>

	[[alternative HTML version deleted]]

