我想在我的 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
作为参数传递给配置才能使其正常工作。