在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/