简体   繁体   English

如何从源代码构建 Guile 库?

[英]How to build Guile libraries from source?

I recently switched to Slackware to learn how to use a more advanced Linux distro.我最近切换到 Slackware 来学习如何使用更高级的 Linux 发行版。 It had GNU Guile 2.0 installed by default, but I built Guile 3.0 from source code.它默认安装了 GNU Guile 2.0,但我从源代码构建了 Guile 3.0。 When I attempted to build guile-json, I was given this message when I ran the configure script.当我尝试构建 guile-json 时,我在运行配置脚本时收到了这条消息。 The directions say to run ./configure --prefix=<guile-prefix> .指示说要运行./configure --prefix=<guile-prefix> What would the prefix be for what I am trying to do, or how would I find it?我正在尝试做的事情的前缀是什么,或者我将如何找到它?

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

The readme tells you to use ./configure --prefix=<guile-prefix> .自述文件告诉您使用./configure --prefix=<guile-prefix> In general, what is meant by that is that you use the same prefix value as you used to build guile, so /usr/local .一般来说,这意味着您使用与构建 guile 相同的前缀值,因此/usr/local This is already the default value with the autotools, so I don't think this is going to help you in any way.这已经是自动工具的默认值,所以我认为这对您没有任何帮助。

Your issue is that the configure script detects the system guile libraries, which are 2.0, but your guile 3.0 is the first in the $PATH, which is incompatible.您的问题是配置脚本检测到系统 guile 库,它们是 2.0,但您的 guile 3.0 是 $PATH 中的第一个,这是不兼容的。 You should make sure the configure script is able to find the proper version of guile, by setting a couple environment variables:您应该通过设置几个环境变量来确保配置脚本能够找到正确的 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

Obviously adjust the values so that they correspond to the actual location you installed the libraries in.显然调整这些值,使它们与您安装库的实际位置相对应。

You should probably add these variables to your .profile or something, so that they are always defined correctly when you run guile.您可能应该将这些变量添加到您的.profile或其他内容中,以便在运行 guile 时始终正确定义它们。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM