[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Chicken-users] Embedding Chicken in C
From: |
Ivan Raikov |
Subject: |
[Chicken-users] Embedding Chicken in C |
Date: |
Tue, 14 Nov 2006 10:45:58 -0500 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux) |
Greetings,
Using Chicken 2.5, I am trying to call Scheme code from a C
program:
/* chicken-embed.c */
#include <stdlib.h>
#include <chicken.h>
int chicken_run (void)
{
C_word x;
CHICKEN_eval_string("(test-chicken-embed)", &x);
return 0;
}
int main(int argc, char **argv)
{
C_word x;
CHICKEN_run((void*)C_toplevel);
chicken_run();
chicken_run();
return 0;
}
=====================
;; test-chicken-embed.scm
(define (test-chicken-embed)
(print "test-chicken-embed")
(return-to-host))
If I compile with the following command:
csc -s -embedded test-chicken-embed.scm chicken-embed.c \
-o test-chicken-embed
Running `./test-chicken-embed' results in a segmentation fault.
If I compile with the following commands:
csc -sc -embedded test-chicken-embed.scm
gcc -I$CHICKEN_DIR/include -c chicken-embed.c
gcc -L$CHICKEN_DIR/lib -o chicken-embed chicken-embed.o \
test-chicken-embed.o -lchicken
Running `./test-chicken-embed' does not print anything.
Can anyone tell me what I'm doing wrong? Thanks for all and any help.
-Ivan
- [Chicken-users] Embedding Chicken in C,
Ivan Raikov <=