답변:
Cygwin에서 물고기 를 컴파일하는 방법은 다음과 같습니다 .
먼저 다음과 같은 cygwin 패키지가 있는지 확인하십시오.
libncurses-devel
libiconv
autoconf
(실제로 물고기의 의존성이 아니라 나중에 단계를 위해 필요합니다)다음으로 http://fishshell.com 에서 최신 소스를 다운로드 하십시오 (I 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/
configure.ac
검사를 제거하도록 편집iconv
이제 어떤 이유로 제대로 ./configure
감지 할 수 없습니다 libiconv
. 문제를 해결하기 위해 검사를 제거합니다 (나중에 lib를 수동으로 지정합니다). 이를 configure.ac
위해에 대한 검사를 편집 하고 제거합니다 iconv_open
. 검색하면 iconv_open
3 가지 발생이 나타납니다. 우리는 그들 모두를 주석 처리합니다. 따라서,
AC_SEARCH_LIBS( iconv_open, iconv, ....)
우리는 다음과 같이 변경합니다.
#AC_SEARCH_LIBS( iconv_open, iconv, ....)
./configure
다음으로 configure 스크립트를 ./configure
실행 autoconf
한 후 스크립트를 다시 빌드합니다 :
$ autoconf && ./configure
Makefile
올바른 경로를 포함하도록 수정curses.h
내가 직면 한 또 다른 문제는 curses.h
gcc가 찾을 수 없다는 것입니다. 빠른 검색 결과에 있음이 밝혀졌습니다 /usr/include/ncurses
.
는 Makefile
하드 코드가에 대한 경로를 포함 가지고 CFLAGS
있지만 가리키는 /usr/local/include/ncurses
대신.
따라서 다음 Makefile
과 같이 편집 하고 변경합니다.
CFLAGS = -I/usr/local/include/ncurses -std=c99 ....
에
CFLAGS = -I/usr/include/ncurses -std=c99 ...
LDFLAGS
위해 링크를 내 libiconv
보내면 컴파일 / 설치할 준비가되었습니다.마지막으로에 필요한 LDFLAGS
링크를 내 보낸 iconv
다음 컴파일하고 설치하십시오!
$ export LDFLAGS="-liconv"
$ make && make install
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>
translate_color': set_color.c:116: warning: implicit declaration of function
strcasecmp 'set_color.c : 함수에서 main': set_color.c:333: error:
ERR'선언되지 않은를 (이 기능에서 처음 사용)
libncurses-devel
변경된 -I
경로 를 설치 하고 변경 했습니까 ?
curses.h
는 포함되어 있지 않습니다 (여기 ERR
에 정의되어 있음). 엿볼 수 /usr/include/ncurses/
있고 거기 있는지 볼 수 있습니까?
#define HAVE_NCURSES_H 1
생성 된 헤더 파일에 추가 했습니다config.h
(위와 같은 이유로)