extension example is the most simple example of a
Tcl extension. More examples at
Extending Tcl.
Contributed by
Ralf Fassel, stubs support added by
George Peter Staplin/* hello.c */
#include <stdio.h>
#include <stdlib.h>
#include <tcl.h>
int
hello(/* args ignored */)
{
printf("hello world\n");
return TCL_OK;
}
int
Hello_Init(Tcl_Interp *interp)
{
if (NULL == Tcl_InitStubs (interp, TCL_VERSION, 0))
return TCL_ERROR;
printf("this is hello loading\n");
Tcl_CreateCommand(interp, "hello", hello, NULL, NULL);
return Tcl_PkgProvide(interp, "Hello", "1.0");
}
% gcc -fPIC -shared -o /tmp/hello.so hello.c
% tclsh
% load /tmp/hello.so
For stubs:
$ gcc -shared -o hello.so -DUSE_TCL_STUBS hello.c /path/to/libtclstub84.a -lm -Wl,-rpath=/path/to/dir/with/libtcl84.so
$ tclsh8.4
% load ./hello.so