web-dev-qa-db-fra.com

_libiconv ou _iconv symbole non défini sur Mac OSX

Lors de la compilation de certains packages à partir des sources sur Mac OSX, j'obtiens l'erreur iconv suivante:

Undefined symbols for architecture x86_64:
  "_iconv", referenced from:
  "_iconv_close", referenced from:
  "_iconv_open", referenced from:

ou je reçois:

Undefined symbols for architecture x86_64:
"_libiconv", referenced from:
"_libiconv_open", referenced from:
"_libiconv_close", referenced from:

Pourquoi cela se produit-il et comment puis-je contourner cette dépendance ou, plus généralement, comprendre ce qui se passe et comment y remédier?

7
John Q

J'ai eu le même problème en essayant d'installer cargo-tree:

cargo install cargo-tree
<...>
= note: Undefined symbols for architecture x86_64:
        "_iconv", referenced from:
            _git_path_iconv in liblibgit2_sys-966b1b327b8681d4.rlib(path.o)
           (maybe you meant: _git_path_iconv_clear, _git_path_iconv_init_precompose , _git_path_iconv )
        "_iconv_open", referenced from:
            _git_path_direach in liblibgit2_sys-966b1b327b8681d4.rlib(path.o)
<...>

Ma solution consistait à désactiver libiconv de MacPorts:

Sudo port deactivate libiconv

L'installation a ensuite réussi.

Vous devrez peut-être réactiver libiconv si certains d'entre vous Macports les applications ne fonctionnent pas:

Sudo port activate libiconv
1
Artem Skoretskiy