【问题标题】:How to build Guile libraries from source?如何从源代码构建 Guile 库?
【发布时间】:2020-10-13 23:02:18
【问题描述】:

我最近切换到 Slackware 来学习如何使用更高级的 Linux 发行版。它默认安装了 GNU Guile 2.0,但我从源代码构建了 Guile 3.0。当我尝试构建 guile-json 时,我在运行配置脚本时收到了这条消息。指示说要运行./configure --prefix=<guile-prefix>。我正在尝试做的事情的前缀是什么,或者我将如何找到它?

checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
configure: checking for guile 3.0
configure: checking for guile 2.2
configure: checking for guile 2.0
configure: found guile 2.0
checking for guile-2.0... no
checking for guile2.0... no
checking for guile-2... no
checking for guile2... no
checking for guile... /usr/local/bin/guile
configure: error: found development files for Guile 2.0, but /usr/local/bin/guile has effective version 3.0

【问题讨论】:

  • 最简单的解决方案可能是删除 Guile 2。

标签: linux guile slackware


【解决方案1】:

自述文件告诉您使用./configure --prefix=<guile-prefix>。一般来说,这意味着您使用与构建 guile 相同的前缀值,因此 /usr/local。这已经是自动工具的默认值,所以我认为这对您没有任何帮助。

您的问题是配置脚本检测到系统 guile 库,它们是 2.0,但您的 guile 3.0 是 $PATH 中的第一个,这是不兼容的。您应该通过设置几个环境变量来确保配置脚本能够找到正确的 guile 版本:

export GUILE_LOAD_PATH=/usr/local/share/guile/site/3.0
export GUILE_LOAD_COMPILED_PATH=/usr/local/lib/guile/3.0/site-ccache
./configure --prefix=/usr/local

显然调整这些值,使其与您安装库的实际位置相对应。

您可能应该将这些变量添加到您的.profile 或其他东西中,以便在您运行 guile 时始终正确定义它们。

【讨论】:

    猜你喜欢
    • 2018-08-13
    • 1970-01-01
    • 2010-11-17
    • 2021-10-07
    • 2012-01-21
    • 2012-06-13
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多