[devel] Обновление glib2: первая кровь
Alexey Rusakov
=?iso-8859-1?q?ktirf_=CE=C1_altlinux=2Eru?=
Чт Мар 6 10:55:07 MSK 2008
On Wed, 05 Mar 2008 20:21:50 +0300
Yury Aliaev wrote:
> Yury Aliaev пишет:
> > Всем доброго времени суток!
> >
> > После обновления я словил ошибку, заключающуюся в том, что gnucash
> > перестал пересобираться. Линкер вылетал с руганью на неопределённую
> > ссылку. Интрига состояла в том, что файл, в котором находилась нужная
> > функция (которую не мог найти линкер) оказалась в исходнике, входящем
> > в состав библиотеки, в котором линкер не мог найти ссылку. После
> > креативного вкуривания исходников я обнаружил следующую конструкцию:
> >
> > G_INLINE_FUNC void mark_split (Split *s);
> >
> > Это и была та самая функция, которая приводила к неразрешённой ссылке.
> > Я убрал G_INLINE_FUNC, и -- о чудо! -- всё прекрасно стало собираться.
>
> Некоторые подробности вдогонку:
>
> Упомянутая таким образом функция так была объявлена в заголовочном (*.h)
> файле. В самом же исходнике она была описана как
>
> void mark_split (Split *s)
После предыдущего обновления glib2 вылезла аналогичная безалаберность в
рубиновых привязках. Если только иначе не сказано в документации,
сигнатуры функций должны совпадать с точностью до использования макросов.
Иначе при изменении определения макросов могут быть неприятности.
--
Alexey "Ktirf" Rusakov
Head of System development dept.
ALT Linux Ltd.
Подробная информация о списке рассылки Devel