How to fix libiconv error on Mac?

别等时光非礼了梦想. 提交于 2019-12-10 02:36:44

问题


I have uninstall port from Mac with this comand:

sudo port -fp uninstall installed

Then when I use wget to download file,it shows me:

dyld: Library not loaded: /opt/local/lib/libiconv.2.dylib
  Referenced from: /opt/local/bin/wget
  Reason: Incompatible library version: wget requires version 8.0.0 or later, but libiconv.2.dylib provides version 7.0.0
Trace/BPT trap: 5

How to do?

※ Mac OS X 10.7.5

Addition

When I run

otool -L $(which wget)

It gave me

/opt/local/bin/wget:
    /opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0)
    /opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.1.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
    /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 635.19.0)
    /opt/local/lib/libgnutls.26.dylib (compatibility version 49.0.0, current version 49.3.0)
    /opt/local/lib/libtasn1.3.dylib (compatibility version 5.0.0, current version 5.13.0)
    /opt/local/lib/libgcrypt.11.dylib (compatibility version 19.0.0, current version 19.0.0)
    /opt/local/lib/libgpg-error.0.dylib (compatibility version 9.0.0, current version 9.0.0)
    /opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.7)
    /opt/local/lib/libidn.11.dylib (compatibility version 18.0.0, current version 18.8.0)

回答1:


Apparently you built and installed a copy of wget locally while you had libiconv installed from MacPorts so it dynamically links to that library which you've now removed. If you want to remove all traces of MacPorts, you'll need to rebuild that copy of wget.

Otherwise, you could install a copy of wget with MacPorts which will also install all dependencies like libiconv.

sudo port selfupdate
sudo port clean wget
sudo port install wget

Or, instead of wget, you could use curl which Apple supplies with OS X.

UPDATE: Based on your update, it appears you are using a MacPorts-installed wget. Somehow you've managed to get the dependencies out of sync. (Why use port -fp uninstall installed ?) Suggest you now try:

sudo port selfupdate     # if not run recently   
sudo port clean libiconv
sudo port upgrade --force libiconv

to force an upgrade of libiconv to the current version.

UPDATE [2014-12]: Revisiting this, the problem may also be due to an incomplete MacPorts port file that doesn't register the wget port dependency on libiconv. I've opened an issue about it. [...] And the MacPorts project answers that this may be a result of not following the MacPorts migration instructions when upgrading to a new release of OS X; there is a MacPorts problem hotlist entry for libiconv compatibilities here.

In any case, what may work is to reinstall wget from source.

sudo port selfupdate
sudo port -f uninstall wget
sudo port -s install wget

If that doesn't help, you may want to read the migration instructions and make sure you've re-installed all your ports after upgrading.



来源:https://stackoverflow.com/questions/13301786/how-to-fix-libiconv-error-on-mac

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!