Undefined symbol “stpcpy”

剛剛在某台 FreeBSD 上要 make wget 的時候發現了一些問題:

/usr/libexec/ld-elf.so.1: /usr/local/lib/libintl.so.6: Undefined symbol “stpcpy”


查了一下發現是因為從 4.x 升級到 5.x 時,使用 portupgrade 在 recompile gettext 時,gettext 發現系統已經有 stpcpy() (/usr/local/lib/compat/pkg/ 下舊的 libintl.so.5),所以他就不會生 stpcpy() 所產生的問題。

Google 找,發現有個德國的 mailing list 上是在 devel/gettext 做 make configure 後,直接把 config.h (有兩個 config.h) 的 #define HAVE_STPCPY 1 改成 0,不過我覺得這種方法太不直覺了,應該有正確的解法才對…

所以我把 /usr/local/lib/compat/pkg/ 以及 /usr/lib/compat/ 下的東西全砍了,然後 pkg_delete -f gettext-0.14.1 後再 ldconfig -R,再裝 gettext,然後再用 pkgdb -F 修一下 dependency,結果還是沒用… -_______-

我不過是要裝個邪惡的 wget 而已啊 :~