2

iconvに依存するCMakeでライブラリを構築しようとしています。Macports でインストールしましたが、ライブラリをビルドしようとすると、次のエラーが発生します。

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適切な場所を探していると思われるファイルがあります。何が問題になる可能性がありますか?

4

1 に答える 1

6

使用しているライブラリ/ヘッダーが一致していない可能性があります。/usr/include のヘッダーを使用してソース コードをコンパイルし、/opt/local/lib/libiconv.dylib にリンクしようとしているようです。

~ $ 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/include でコンパイルすることを確認してください

于 2014-12-10T04:33:30.243 に答える