在 Cygwin 下构建 Fish 2.0 shell

在 Cygwin 下构建 Fish 2.0 shell

我想在我的 cygwin 实例下有一个 fish shell,我非常想要它,我甚至尝试构建它,但没有成功。

我已经完成了所有先决条件,例如安装 autoconf、clang、ncurses 和其他所需内容。

autoconf并且./configure一切顺利,但是当我尝试时make,代码无法编译。

我看到还有另一个帖子但它适用于旧版本 1.23。

那么有人已经启动并运行了这个功能吗?

以下是我构建时出现的错误:

g++ -g -O2 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -fno-exceptions -Wall -DLOCALEDIR=\"/usr/local/share/locale\" -DPREFIX=L\"/usr/local\" -DDATADIR=L\"/usr/local/share\" -DSYSCONFDIR=L\"/usr/local/etc\" -DBINDIR=L\"/usr/local/bin\"    -c -o builtin.o builtin.cpp
In file included from builtin_set_color.cpp:13:0,
             from builtin.cpp:397:
fallback.h:97:7: error: previous declaration of ‘char* tparm_solaris_kludge(char*, ...)’ with ‘C++’ linkage
/usr/include/ncurses.h:820:63: error: conflicts with new declaration with ‘C’ linkage
<builtin>: recipe for target `builtin.o' failed
make: *** [builtin.o] Error 

答案1

@Yaakov 的提议实际上非常接近,但要成功编译 fish 2.0,您需要从 fallback.h 中注释/删除有问题的行,然后使用以下命令调用配置:

./configure CXXFLAGS='-I/usr/include -I/usr/include/ncursesw'

make之后你应该能够make install

答案2

由于未找到,因此您在配置测试中得到了假阴性<term.h>;您需要将其CPPFLAGS=-I/usr/include/ncurses作为参数传递给配置才能使其正常工作。

相关内容