簡體   English   中英

無法安裝/制作freetds OS X Yosemite

[英]Cannot install/make freetds OS X Yosemite

我試圖在Macbook上安裝gem tiny_tds,所以首先嘗試通過運行brew install freetds安裝freetds依賴項。 但是,它不起作用,並且我收到一個對我沒有意義的錯誤:

libtool: link: clang -D_THREAD_SAFE -g -O2 -I/usr/local/opt/openssl/include -Wdeclaration-after-statement -o .libs/bsqldb bsqldb.o  -L/usr/local/opt/openssl/lib ../dblib/.libs/libsybdb.dylib ../replacements/.libs/libreplacements.a -lssl -lcrypto /usr/local/Cellar/libiconv/1.13.1/lib/libiconv.dylib
libtool: link: clang -D_THREAD_SAFE -g -O2 -I/usr/local/opt/openssl/include -Wdeclaration-after-statement -o .libs/datacopy datacopy.o  -L/usr/local/opt/openssl/lib ../dblib/.libs/libsybdb.dylib ../replacements/.libs/libreplacements.a -lssl -lcrypto /usr/local/Cellar/libiconv/1.13.1/lib/libiconv.dylib
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1

我也嘗試從源代碼編譯freetds,但我也遇到了一個錯誤:

/bin/sh ../../libtool --tag=CC   --mode=link gcc -D_THREAD_SAFE  -g -O2 -Wdeclaration-after-statement   -o tsql tsql.o ../tds/libtds.la ../replacements/libreplacements.la  -liconv  -lncurses  -lreadline
libtool: link: gcc -D_THREAD_SAFE -g -O2 -Wdeclaration-after-statement -o tsql tsql.o  ../tds/.libs/libtds.a ../replacements/.libs/libreplacements.a /usr/local/Cellar/libiconv/1.13.1/lib/libiconv.dylib -lncurses -lreadline
Undefined symbols for architecture x86_64:
  "_iconv", referenced from:
      _tds_iconv_open in libtds.a(iconv.o)
      _tds_iconv in libtds.a(iconv.o)
      _tds_iconv_fread in libtds.a(iconv.o)
     (maybe you meant: _tds_iconv_close, _tds_iconv , _tds_iconv_open , _tds_iconv_get , _tds_iconv_free , _tds_iconv_alloc , _tds_iconv_from_collate , _tds_iconv_fread )
  "_iconv_close", referenced from:
      _tds_iconv_open in libtds.a(iconv.o)
      _tds_iconv_info_init in libtds.a(iconv.o)
      _tds_iconv_close in libtds.a(iconv.o)
      _tds_iconv in libtds.a(iconv.o)
      _tds_iconv_get_info in libtds.a(iconv.o)
      _tds_srv_charset_changed_num in libtds.a(iconv.o)
      _tds_set_iconv_name in libtds.a(iconv.o)
      ...
     (maybe you meant: _tds_iconv_close)
  "_iconv_open", referenced from:
      _tds_iconv_open in libtds.a(iconv.o)
      _tds_iconv_info_init in libtds.a(iconv.o)
      _tds_iconv in libtds.a(iconv.o)
      _tds_set_iconv_name in libtds.a(iconv.o)
     (maybe you meant: _tds_iconv_open)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[3]: *** [tsql] Error 1
make[2]: *** [all-recursive] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all-recursive] Error 1

我真的不明白為什么我不能在我的機器上編譯freetds,如果有人幫助我,我會很高興!

先感謝您。

我實際上找到了解決我問題的方法! 顯然,brew將Libiconv安裝為對另一個程序的依賴項。 但是此安裝未針對我的體系結構進行編譯,因此無法正常工作。 我必須卸載libiconv的brew版本並手動重新安裝。

brew uninstall libiconv
brew install libiconv
brew install freetds

我不確定是否有必要通過brew重新安裝libiconv,因為它現在應該是Mac OS的一部分。 希望這對遇到同樣問題的人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM