今天重新編譯以前的一個程序,里面用到iconv庫:gcc test.cc -liconv
運行時:a.out:error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
以前編譯運行是可以的,可能是不久前升級了iconv庫影響。在/usr/local/lib下可以找到libiconv.so.2,把/usr/local/lib加到路徑中也不行。
google了一下,解決了:在/etc/ld.so.conf中加一行/usr/local/lib,運行ldconfig。再運行a.out,行了。
ld.so.conf和ldconfig是維護系統動態鏈接庫的。真不明白為什么iconv庫安裝時不把這一步也做了。
//注意
如果你不是root,ldconfig也運行不了的,解決的方法就是,設置環境變量 LDFLAGS=-L/usr/local/lib