2011-02-24 4 views
2

정말 번거 롭습니다.Mac OS X 10.6.4에 설치된 iconv 보석을 얻는 데 큰 어려움을 겪고 있습니다.

checking for iconv() in iconv.h... no 
checking for iconv() in -liconv... no 

내 명령 줄은 다음과 같습니다 :

sudo gem install iconv 

"의 iconv"수율 :

/opt/local/bin/iconv 

난 정말 심지어 어떤 사람들을 모른다 "여기 투쟁의 출력은 "라인을 확인하는 것은 거기에서 의미합니다. 왜 지구상에서 iconv()는 iconv.h에 존재하지 않을까요? 나 한테 이해가 안돼. iconv.h는/opt/local/include에 있습니다.

편집 :

have_func: checking for iconv() in iconv.h... -------------------- no 

    "gcc -o conftest -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 -I. -I/opt/local/bin/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common conftest.c -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L/opt/local/bin/lib -L. -arch i386 -arch x86_64  -lruby -lpthread -ldl " 
    Undefined symbols for architecture i386: 
     "_libiconv", referenced from: 
      _libiconv$non_lazy_ptr in ccF0PUYQ.o 
    ld: symbol(s) not found for architecture i386 
    collect2: ld returned 1 exit status 
    Undefined symbols for architecture x86_64: 
     "_libiconv", referenced from: 
      _t in cc0k5gYm.o 
    ld: symbol(s) not found for architecture x86_64 
    collect2: ld returned 1 exit status 
    lipo: can't open input file: /var/tmp//cc3Rrwkf.out (No such file or directory) 
    checked program was: 
    /* begin */ 
    1: #include <iconv.h> 
    2: 
    3: /*top*/ 
    4: int main() { return 0; } 
    5: int t() { void ((*volatile p)()); p = (void ((*)()))iconv; return 0; } 
    /* end */ 

    "gcc -o conftest -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 -I. -I/opt/local/bin/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common conftest.c -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L/opt/local/bin/lib -L. -arch i386 -arch x86_64  -lruby -lpthread -ldl " 
    conftest.c: In function 't': 
    conftest.c:5: error: too few arguments to function 'libiconv' 
    conftest.c: In function 't': 
    conftest.c:5: error: too few arguments to function 'libiconv' 
    lipo: can't figure out the architecture type of: /var/tmp//ccfQKL4Y.out 
    checked program was: 
    /* begin */ 
    1: #include <iconv.h> 
    2: 
    3: /*top*/ 
    4: int main() { return 0; } 
    5: int t() { iconv(); return 0; } 
    /* end */ 

    -------------------- 

    have_library: checking for iconv() in -liconv... -------------------- no 

    "gcc -o conftest -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 -I. -I/opt/local/bin/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common conftest.c -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L/opt/local/bin/lib -L. -arch i386 -arch x86_64  -lruby -liconv -lpthread -ldl " 
    Undefined symbols for architecture x86_64: 
     "_libiconv", referenced from: 
      _t in ccorhTF7.o 
    ld: symbol(s) not found for architecture x86_64 
    collect2: ld returned 1 exit status 
    lipo: can't open input file: /var/tmp//ccqa9vmd.out (No such file or directory) 
    checked program was: 
    /* begin */ 
    1: #include <iconv.h> 
    2: 
    3: /*top*/ 
    4: int main() { return 0; } 
    5: int t() { void ((*volatile p)()); p = (void ((*)()))iconv; return 0; } 
    /* end */ 

    "gcc -o conftest -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 -I. -I/opt/local/bin/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -arch i386 -arch x86_64 -g -Os -pipe -fno-common -DENABLE_DTRACE -fno-common -pipe -fno-common conftest.c -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib -L/opt/local/bin/lib -L. -arch i386 -arch x86_64  -lruby -liconv -lpthread -ldl " 
    conftest.c: In function 't': 
    conftest.c:5: error: too few arguments to function 'libiconv' 
    conftest.c: In function 't': 
    conftest.c:5: error: too few arguments to function 'libiconv' 
    lipo: can't figure out the architecture type of: /var/tmp//cc2UrCWJ.out 
    checked program was: 
    /* begin */ 
    1: #include <iconv.h> 
    2: 
    3: /*top*/ 
    4: int main() { return 0; } 
    5: int t() { iconv(); return 0; } 
    /* end */ 

    -------------------- 
+0

사용중인 루비 버전은 무엇입니까? –

+0

1.8.7 패치 수준 174 – AKWF

+0

config.log의 일부분을 확인합니다 (프로그램을 컴파일하여 시도). 수표가 깨 졌음을 알 수 있습니다. –

답변

0

이것은 이상한 일이 : 여기

는 mkmf.log의 출력이다. 나는 보석 디렉토리로 이동 할 때 :

ruby extconf.rb 

과 :

make 

과 : 다음

make install 

을 :

sudo는 보석

에게 그것을의 iconv 설치 공장! 나는 왜 그것이 작동하는지 모른다.

1

OS X 10.9.1에서도이 오류가 발생했습니다. 내 솔루션은 homebrew와 함께 설치된 libiconv를 다시 설치하는 것이 었습니다.

관련 문제