Man Scilab

ilib_for_link
Scilab Function

ilib_for_link - utility for shared library management with link

Calling Sequence

libn=ilib_for_link(names,files,libs,flag,makename,loadername])

Parameters

Description

This tool is used to create shared libraries and to generate a loader file which can be used to dynamically load the shared library into Scilab with the link function. New entry points given by names are then accessible through the call function or with non linear tools ode , optim ,...

The file to compile are supposed to be located given by makename . If makename sets a path different to the current directory, loader script must be located in the same directory using the loadername variable.

Many examples are provided in examples/link-examples-so directory.

Examples



f1=['int ext1c(n, a, b, c)'
    'int *n;     double *a, *b, *c;'
    '{int k;'
    '  for (k = 0; k < *n; ++k) '
    '      c[k] = a[k] + b[k];'
    '  return(0);}'];

mputl(f1,'fun1.c')

//creating the shared library (a gateway, a Makefile and a loader are 
//generated. 

ilib_for_link('ext1c','fun1.o',[],"c") 

// load the shared library 

exec loader.sce 

//using the new primitive
a=[1,2,3];b=[4,5,6];n=3;
c=call('ext1c',n,1,'i',a,2,'d',b,3,'d','out',[1,3],4,'d');
if norm(c-(a+b)) > %eps then pause,end

 
  

See Also

addinter ,   link ,   ilib_compile ,   ilib_gen_Make ,   ilib_gen_gateway ,   ilib_gen_loader ,   ilib_for_link ,  

Back