chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Building C Libraries with chicken


From: Felix
Subject: Re: [Chicken-users] Building C Libraries with chicken
Date: Wed, 01 Sep 2010 07:34:30 -0400 (EDT)

From: Christian Kellermann <address@hidden>
Subject: [Chicken-users] Building C Libraries with chicken
Date: Wed, 1 Sep 2010 10:55:30 +0200

> Dear chickenauts,
> 
> I would like to build a library with chicken scheme that has functions
> that can be called from C. How do I write something like this?
> 

---
;; one.scm

(define-external (yo_dawg) void
  (print "Yo dawg."))

(return-to-host)                ; CHICKEN_run runs the toplevel once
---
/* two.c */

#include <chicken.h>

extern void yo_dawg();

int main(int argc, char *argv[])
{
  CHICKEN_run((void *)C_toplevel);
  yo_dawg();
  return 0;
}
---
Static:

  csc -ec one.scm 
  ar cru libyodawg.a one.o
  gcc two.c -L. -lyodawg -lchicken -o a.out      # assuming chicken.h and 
libchicken are installed
  ./a.out
Yo dawg.
---
Dynamic:

  csc -es one.scm -o libyodawg.so
  gcc two.c -o a.out -L. -lyodawg -lchicken      # s.a.
  LD_LIBRARY_PATH=$PWD ./a.out
Yo dawg.


cheers,
felix



reply via email to

[Prev in Thread] Current Thread [Next in Thread]