cygwin에서 생선 껍질을 사용하는 방법?


15

cygwin과 함께 생선 껍질을 사용할 수 있습니까? cygwin에서 소스를 컴파일 할 수 없었으며 사전 컴파일 된 패키지를 찾지 못했습니다. cygwin에 물고기가없는 좋은 이유가 있습니까?

답변:


23

피쉬 쉘 2.1.0은 이제 Cygwin에서 공식적으로 지원되며 기본 설치 프로그램을 사용하여 설치할 수 있습니다.


15

Cygwin에서 물고기 를 컴파일하는 방법은 다음과 같습니다 .

1 단계 : 모든 종속성이 설치되어 있는지 확인

먼저 다음과 같은 cygwin 패키지가 있는지 확인하십시오.

  • libncurses-devel
  • libiconv
  • autoconf (실제로 물고기의 의존성이 아니라 나중에 단계를 위해 필요합니다)

2 단계 : 최신 소스 다운로드 및 추출

다음으로 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/

3 단계 : configure.ac검사를 제거하도록 편집iconv

이제 어떤 이유로 제대로 ./configure감지 할 수 없습니다 libiconv. 문제를 해결하기 위해 검사를 제거합니다 (나중에 lib를 수동으로 지정합니다). 이를 configure.ac위해에 대한 검사를 편집 하고 제거합니다 iconv_open. 검색하면 iconv_open3 가지 발생이 나타납니다. 우리는 그들 모두를 주석 처리합니다. 따라서,

AC_SEARCH_LIBS( iconv_open, iconv, ....)

우리는 다음과 같이 변경합니다.

#AC_SEARCH_LIBS( iconv_open, iconv, ....)

4 단계 : 재 구축 및 실행 ./configure

다음으로 configure 스크립트를 ./configure실행 autoconf한 후 스크립트를 다시 빌드합니다 :

$ autoconf && ./configure

5 단계 : Makefile올바른 경로를 포함하도록 수정curses.h

내가 직면 한 또 다른 문제는 curses.hgcc가 찾을 수 없다는 것입니다. 빠른 검색 결과에 있음이 밝혀졌습니다 /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 ...

6 단계 :에서 내보내기 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> 

+1 위의 단계가 작동하는지 확인할 수 있습니다. 또한 #define HAVE_NCURSES_H 1생성 된 헤더 파일에 추가 했습니다 config.h(위와 같은 이유로)
Amro

나는 libiconv와 세트 LDFLAGS를 설치했습니다,하지만 난 여전히 오류 얻을 : set_color.c : 16 : 20 : curses.h : 해당 파일이나 디렉토리 set_color.c : 기능에서 translate_color': set_color.c:116: warning: implicit declaration of function strcasecmp 'set_color.c : 함수에서 main': set_color.c:333: error: ERR'선언되지 않은를 (이 기능에서 처음 사용)
muriloq

처음에는 그 오류를 보았습니다. `Makefile (5 단계)에서 libncurses-devel변경된 -I경로 를 설치 하고 변경 했습니까 ?
Shawn Chin

예, 심지어 libncurses-devel을 다시 설치했습니다. 시스템에 이미 다른 종속성이 있습니까? 다음 나는 다음과 같은 버그 리포트를 발견 한 오류 메시지를 찾고 sourceforge.net/tracker/...
muriloq

@muriloq 같은 소리 curses.h는 포함되어 있지 않습니다 (여기 ERR에 정의되어 있음). 엿볼 수 /usr/include/ncurses/있고 거기 있는지 볼 수 있습니까?
Shawn Chin

0

GitHub에서 물고기 문제 # 680# 319 를 확인하십시오 . cygwin에서 물고기를 컴파일하는 데 필요한 모든 것이 있습니다.


2
외부 리소스에 대한 링크가 권장되지만 링크 주위에 컨텍스트를 추가하여 동료 사용자가 그 정보와 그 이유를 알 수 있도록하십시오. 대상 사이트에 연결할 수 없거나 영구적으로 오프라인 상태가되는 경우 항상 중요한 링크의 가장 관련성있는 부분을 인용하십시오.
Ashildr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.