在NixOS上运行 Common Lisp 并不是一件容易的事情,尤其是当你需要与 C 库进行交互的时候。但是不要担心,本文将为您提供一个简单明了的指南,教您如何在 NixOS 上使用带有 C 库的 Common Lisp。
首先,您需要安装一些必要的软件包。在您的 `configuration.nix` 文件中添加以下内容:
“`nix
{pkgs, lib, …}:
{
environment.systemPackages = with pkgs; [
clisp
sbcl
quicklisp
cffi
];
}
“`
接着,您需要在您的 Common Lisp 项目中添加以下依赖:
“`lisp
(ql:quickload :cffi)
(ql:quickload :babel)
“`
现在,您可以开始在 Common Lisp 项目中使用 C 库了。只需按照以下步骤进行:
1. 编写一个 C 语言的接口文件,并编译为共享库:
“`c
// mylib.c
#include
void hello_from_c() {
printf(“Hello from C!\n”);
}
“`
“`bash
gcc -shared -fPIC -o mylib.so mylib.c
“`
2. 在 Common Lisp 项目中使用 C 库:
“`lisp
(defpackage :mylib
(:use :cffi))
(in-package :mylib)
(defcfun “hello_from_c” :void)
“`
现在,您可以在 Common Lisp 项目中调用 C 库中的函数 `hello_from_c` 了:
“`lisp
(mylib::hello-from-c)
“`
通过这种方法,您可以轻松地在 NixOS 上使用带有 C 库的 Common Lisp。希望这篇文章对您有所帮助!
了解更多有趣的事情:https://blog.ds3783.com/