Компиляция с отладочными символами требует дополнительных библиотек?

У меня есть любопытная проблема: при сборке объектных файлов с помощью -g компоновщик вдруг жалуется на отсутствие символов из libbar, от которых мой инструмент косвенно зависит через libfoo. Без -g этого не происходит.

Эти символы, кажется, исходят из параметров по умолчанию для функций в libfoo, которые являются объектами из libbar. Однако эти функции не используются моим инструментом.

Интересно, как эта дополнительная зависимость вызвана отладочными сборками — возможно ли, что эти отладочные символы выдаются для всех символов, а не только тех, которые я использую, и для этих отладочных символов также требуются параметры по умолчанию?

Это с Sun Studio 5.10 на Solaris.


person lytenyn    schedule 08.11.2012    source источник
comment
Используете ли вы встроенные функции в C?   -  person horsh    schedule 19.02.2013


Ответы (1)


Возможно, вы также добавите некоторые определения, такие как DEBUG или что-то в этом роде. И эти определения могут использовать некоторые дополнительные символы из других библиотек (например, других библиотек журналирования). Если вы приведете короткий пример, это также может помочь

person Alexey    schedule 09.11.2012
comment
Нет, код не использует DEBUG или другую магию препроцессора. На самом деле NDEBUG даже не устанавливается нашей системой сборки для сборок без отладки. - person lytenyn; 09.11.2012