On 2009.07.04 at 11:50:57 +0700, Ivan Petrov wrote: > Попытался откомпилировать программу для проверки баланса билайн-модема, > которая приведена на http://ru.gentoo-wiki.com/wiki/MF626 > запускаю компиляцию: > $ g++ -lusb balans.c -o balans > > получаю: > > /tmp/cca4sxGE.o: In function `main': > balans.c:(.text+0xb1e): undefined reference to `libiconv_open' > balans.c:(.text+0xb5d): undefined reference to `libiconv' > balans.c:(.text+0xc97): undefined reference to `libiconv_close' > collect2: ld returned 1 exit status
Выглядит это так, что откуда-то берется неправлиьный iconv.h В принципе, существуют две реализации iconv - в системной библиотеке, и в отдельной libiconv. Вторую приходится использованть на системах, где родного iconv нет, или он неработоспособен - на FreeBSD или древнем солярисе. (в 10-ке уже и в solaris-е нет никакой необходимости в libiconv). Если функция iconv в системной библиотеке так и называется iconv, то в libiconv, во избежание конфликта с системами, имеющими неработоспособный iconv в libc (напр. Solaris 8) iconv определен как макрос, раскрывающийся в libiconv, аналогично и iconv_open, iconv_close. Пожоже, что в каталог с исходниками программы какой-то нехороший человек подложил iconv.h от libiconv. Правильный iconv.h должен располагаться в /usr/include и принадлежать пакету libc6-dev -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

