是否可以将鱼壳与 cygwin 一起使用?我无法在 cygwin 中编译源代码,也没有找到任何预编译包。在 cygwin 中没有鱼有充分的理由吗?
Sha*_*hin 15
这是我如何在 Cygwin 中编译鱼。
首先,确保我们有以下 cygwin 包:
libncurses-devellibiconvautoconf (不是一个真正的鱼的依赖,但我们在后面的步骤中需要它)接下来,从http://fishshell.com下载最新的源代码(我使用的是fish-1.23.1.tar.gz)。将源文件解压缩到您选择的目录并 cd 到它:
$ tar zxvf fish-1.23.1.tar.gz -C /usr/local/src/
$ cd /usr/local/src/fish-1.23.1/
Run Code Online (Sandbox Code Playgroud)
configure.ac以删除检查iconv现在由于某种原因,./configure无法正常检测libiconv。为了解决这个问题,我们取消了对它的检查(稍后我们将手动指定 lib)。为此,我们编辑configure.ac并删除了iconv_open. 搜索iconv_open显示 3 次出现;我们将它们全部注释掉。所以,从:
AC_SEARCH_LIBS( iconv_open, iconv, ....)
Run Code Online (Sandbox Code Playgroud)
我们改为:
#AC_SEARCH_LIBS( iconv_open, iconv, ....)
Run Code Online (Sandbox Code Playgroud)
./configure接下来,我们./configure通过运行重新构建脚本,autoconf然后运行配置脚本:
$ autoconf && ./configure
Run Code Online (Sandbox Code Playgroud)
Makefile以包含正确的路径curses.h我面临的另一个问题是curses.h——gcc 找不到它。快速搜索显示它在/usr/include/ncurses.
在 中Makefile有一个硬编码的包含路径CFLAGS,但它指向/usr/local/include/ncurses。
因此,我们编辑Makefile和更改:
CFLAGS = -I/usr/local/include/ncurses -std=c99 ....
Run Code Online (Sandbox Code Playgroud)
到
CFLAGS = -I/usr/include/ncurses -std=c99 ...
Run Code Online (Sandbox Code Playgroud)
LDFLAGS到链接中libiconv,我们就可以编译/安装了。最后,我们导出必要LDFLAGS的链接进去iconv,然后编译安装!
$ export LDFLAGS="-liconv"
$ make && make install
Run Code Online (Sandbox Code Playgroud)
fish$ fish
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
me@home /u/l/s/fish-1.23.1>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10211 次 |
| 最近记录: |