【问题标题】:Cannot install/make freetds OS X Yosemite无法安装/制作 freetds OS X Yosemite
【发布时间】:2014-12-22 18:30:20
【问题描述】:

我正在尝试在我的 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,如果有人帮助我,我会很高兴的!

提前谢谢你。

【问题讨论】:

    标签: ruby-on-rails sql-server homebrew osx-yosemite freetds


    【解决方案1】:

    我实际上找到了解决问题的方法!显然,Libiconv 是通过 brew 安装为另一个程序的依赖项。但是这个安装不是为我的架构编译的,所以不能正常工作。我不得不卸载 brew 版本的 libiconv 并手动重新安装。

    brew uninstall libiconv
    brew install libiconv
    brew install freetds
    

    我不确定是否有必要通过 brew 重新安装 libiconv,因为它现在应该是 Mac OS 的一部分。希望这对遇到同样问题的人有所帮助。

    【讨论】:

    • 谢谢!这只是让我免于将头撞到墙上。
    猜你喜欢
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 2014-07-24
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-20
    相关资源
    最近更新 更多