2014-12-10 5 views
2

iconv에 의존하는 CMake로 라이브러리를 빌드하려고합니다. 나는 MacPorts를 함께 설치했지만 나는 다음과 같은 오류가 라이브러리 빌드하려고 할 때마다 :OS X에서 iconv에 연결할 수 없습니다

Undefined symbols for architecture x86_64: 
    "_iconv", referenced from: 
     _mariadb_convert_string in my_charset.c.o 
    "_iconv_close", referenced from: 
     _mariadb_convert_string in my_charset.c.o 
    "_iconv_open", referenced from: 
     _mariadb_convert_string in my_charset.c.o 
ld: symbol(s) not found for architecture x86_64 

을 나는 올바른 장소에보고 될 것으로 보인다 FindIconv.cmake 파일이 있습니다. 무엇이 잘못 될 수 있습니까?

+0

실제 링크 명령을 얻기 위해'ninja -v'를 시도하고 수동으로 재현 해 봅니다. – user3159253

답변

5

사용중인 라이브러리/헤더가 일치하지 않을 가능성이 있습니다. 당신이 헤더를 사용하여 소스 코드를 컴파일 된 것 같습니다에서/usr 및/

~ $ nm -m /usr/lib/libiconv.dylib | grep iconv_close 
0000000000002ea4 (__TEXT,__text) external _iconv_close 

~ $ nm -m /opt/local/lib/libiconv.dylib | grep iconv_close 
0000000000003ec0 (__TEXT,__text) external _libiconv_close 

/옵션은 -I로 컴파일해야합니다 /opt/local/lib/libiconv.dylib에 연결하려고 포함/지역/include

+0

FindIconv.cmake가 올바른 방향을 가리키는 것처럼 보입니다. – ruipacheco