On Wed, Mar 05, 2008 at 08:21:50PM +0300, Yury Aliaev wrote: > Yury Aliaev пишет: > >Всем доброго времени суток! > > > >После обновления я словил ошибку, заключающуюся в том, что gnucash > >перестал пересобираться. Линкер вылетал с руганью на неопределённую > >ссылку. Интрига состояла в том, что файл, в котором находилась нужная > >функция (которую не мог найти линкер) оказалась в исходнике, входящем в > >состав библиотеки, в котором линкер не мог найти ссылку. После > >креативного вкуривания исходников я обнаружил следующую конструкцию: > > > >G_INLINE_FUNC void mark_split (Split *s); > > > >Это и была та самая функция, которая приводила к неразрешённой ссылке. Я > >убрал G_INLINE_FUNC, и -- о чудо! -- всё прекрасно стало собираться. Значит, определение G_INLINE_FUNC в пакете glib2-devel изменилось. > Некоторые подробности вдогонку: > > Упомянутая таким образом функция так была объявлена в заголовочном (*.h) > файле. В самом же исходнике она была описана как > > void mark_split (Split *s) > > Также вдогонку пришла мысль, что нарушение сборки вызвано изменением не > в glib2, а в gcc или ld. Не надо начинать поиск причины ошибок с gcc или ld. Даже если вы можете их идентифицировать, подозревать gcc или ld имеет смысл далеко не в первую очередь. -- ldv