Мне нужно скомпилировать и статически скомпоновать программу Chicken. Я ожидаю использовать много расширений, особенно http-client
.
Я могу скомпилировать исходный код с помощью следующей команды:
csc -compile-syntax -static linux-setup.scm
or
csc -R http-client -compile-syntax -static linux-setup.scm
Но когда я запускаю его, я получаю следующую ошибку:
Error: (require) cannot load extension: http-client
Call history:
##sys#require <--
Я также пробовал (declare (uses http-client))
в источнике, но безуспешно:
linux-setup.o: In function `f_369':
/mnt/data/Documents/Programming/chicken-scheme/linux-setup/linux-setup.c:219:
undefined reference to `C_http_2dclient_toplevel'
collect2: error: ld returned 1 exit status
Error: shell command terminated with non-zero exit status 256: 'gcc' 'linux-setup.o'
-o 'linux-setup' -L"/usr/lib" -Wl,-R"/usr/lib" -static '/usr/lib/libchicken.a' -lm -ldl
Статическая ссылка — это то, что мне нужно. Это не проблема XY. Мне нужно, чтобы мои исполняемые файлы запускались в только что установленной системе Linux без каких-либо зависимостей. Это основная причина, по которой я перешел с Common Lisp на Scheme.
Что я делаю не так, пожалуйста?