Я работаю над куриной библиотекой, которую я использую в C-проекте. Когда я пытаюсь загрузить яйца (например, (use intarweb)
), среда выполнения жалуется на невозможность загрузить яйцо.
(lldb) run
Error: (require) cannot load extension: intarweb
Call history:
bridge-connector.scm:6: ##sys#require <--
Process 56172 exited with status = 70 (0x00000046)
Мне было интересно, не удалось ли среде выполнения определить местонахождение яиц, поэтому я попытался установить переменную среды CHICKEN_INCLUDE_PATH
безуспешно:
export CHICKEN_INCLUDE_PATH="/usr/local/Cellar/chicken/4.13.0/lib/chicken/8/"
Я даже пытался использовать load
напрямую с полным путем:
(load "/usr/local/Cellar/chicken/4.13.0/lib/chicken/8/intarweb.so")
но получил следующую ошибку:
(lldb) run
Error: unbound variable: |\xcf\xfa\xed\xfe\x07\x00\x00\x01\x03\x00\x00\x00\x08\x00\x00\x00|
Call history:
bridge-connector.scm:6: load
Я использую Chicken Scheme 4 и инициализирую среду выполнения Chicken Scheme следующим образом:
#include <chicken.h>
void my_lib_initialize()
{
C_word k = CHICKEN_run(C_toplevel);
(void)k;
}
Библиотека My Chicken построена следующим образом:
csc -embedded -debug-info -d3 -J -c bridge-connector.scm
csc -embedded -debug-info -d3 -c my-lib.scm
csc -c my_lib_initialize.c
csc ./my_lib_initialize.o ./my-lib.o ./bridge-connector.o -shared -embedded -static -debug-info -d3 -o libmy-lib.dylib