gpt4 book ai didi

macos - 如何在 os x、centos 6 上构建 goncurses

转载 作者:IT王子 更新时间:2023-10-29 02:30:23 24 4
gpt4 key购买 nike

OS X、Centos 6 和 Debian Squeeze 都带有 v5.7 的 ncurses,但 go 包装器“goncurses”需要 5.9。尝试在任何这些平台上构建它都会给您这样的错误:

$ go get -v code.google.com/p/goncurses
code.google.com/p/goncurses
# code.google.com/p/goncurses
/tmp/go-build527609801/code.google.com/p/goncurses/_obj/goncurses.o:
In function 'ncurses_is_subwin':src/code.google.com/p/goncurses/goncurses.c:71: undefined reference to `is_subwin'
/tmp/go-build527609801/code.google.com/p/goncurses/_obj/goncurses.o:
In function 'ncurses_is_pad':src/code.google.com/p/goncurses/goncurses.c:63: undefined reference to `is_pad'

您可以使用 homebrew 在 os x 上安装 ncurses v5.9,并在 linux 上从源代码构建到/usr/local/,但是如何让 go 在构建时使用升级的 ncurses ?

最佳答案

@JimB 回答了我的另一个问题 How to change lib path for "go build"建议利用 pkg-config,该解决方案将如下所示:

在 CentOS 6 上,您可以像这样从源代码构建 ncurses,这会将驱动 pkg-config 的 .pc 文件放入您自己的目录,而不是/usr/lib64/pkgconfig/

mkdir ~/local-pkg-config
PKG_CONFIG_LIBDIR=~/local-pkg-config ./configure --prefix=/usr/local/ --enable-pc-files --with-pkg-config
make && make install

在 OS X 上,您可以从自制软件安装 ncurses。 Homebrew 通常将 .pc 文件与包一起放置,例如/usr/local/Cellar/pango/1.34.1/lib/pkgconfig/pango.pc。出于某种原因,自制软件没有任何带有 ncurses 的 .pc 文件,但我成功地将 CentOS 文件抓取到 ~/local-pkg-config 并更改它们以适应:

@@ -1,7 +1,7 @@
-prefix=/usr/local/
+prefix=/usr/local/Cellar/ncurses/5.9/
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
-includedir=${prefix}/include/ncurses
+includedir=${prefix}/include
major_version=5
version=5.9.20110404

现在您已准备好在任一平台上获取 goncurses 包:

PKG_CONFIG_PATH=~/local-pkg-config/ go get -v code.google.com/p/goncurses

关于macos - 如何在 os x、centos 6 上构建 goncurses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23975235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com