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]

Ответить