-
- Попросите линкер в листинг печатать suppressed entries - Хитрый Китаец(13.07.2015 19:37)
- Кстати, а когда вы подключаете к либе еще и сорцы, то может линкер вообще не обращает внимание на либу, а берет все из сорцов? - 0men(13.07.2015 18:49)
- Конечно. - ASDFS(13.07.2015 18:50)
- Может быть стоит просмотреть проект на предмет названия функций? Сомнительно, что можно так угадать и совпасть с библиотечной.. - 0men(13.07.2015 15:45)
- Не факт что оно просто так совпало. Могли взять что то стандартное и модифицировать. Пример стартап или лоулевел инит. Задача все же объяснить линкеру что моя либа приоритетнее стандартных - глупо шерстить гигантский проект на предмет совпадений и ASDFS(17 знак., 13.07.2015 16:11)
- А вывод ликера без варнингов? Были проблемы с пропущенными прототипами функций, и линкер ничего не мог предположить о них, линковка пройдет, но программа запросто упадет. Ну и второй вариант - блуждающие указатели. Код из либы попадет в другие DASM(65 знак., 13.07.2015 16:19)
- В том то и дело что программа нормально собирается и прекрасно работает. Проблемы начинаются только после того как проект переделали в либу. Рисовали проект вполне профессиональные товарищи, трудно представить что они задавали вызов функций по ASDFS(20 знак., 13.07.2015 16:31)
- Я понял. И все же- варнинги есть или нет? Насчет абсолютных адресов я имею в виду случайное попадание левых указателей, тогда поведение программы будет определяться чем угодно,в том числе порядком линковки и размещения переменных. - DASM(13.07.2015 16:42)
- ну все же несовпадение объявленной и объектной функций это не варнинг, это однозначно ошибка. ASDFS(15 знак., 13.07.2015 17:20)
- Ну да, с Сях это visual studio 2010\projects\main.c(3): warning C4013: 'foo' undefined; assuming extern returning int DASM(68 знак., 13.07.2015 18:29)
- Нет, это варнинг если нет прототипа вообще. Ошибка это в С++ будет, если не забыл - DASM(13.07.2015 17:40)
- ну все же несовпадение объявленной и объектной функций это не варнинг, это однозначно ошибка. ASDFS(15 знак., 13.07.2015 17:20)
- Я понял. И все же- варнинги есть или нет? Насчет абсолютных адресов я имею в виду случайное попадание левых указателей, тогда поведение программы будет определяться чем угодно,в том числе порядком линковки и размещения переменных. - DASM(13.07.2015 16:42)
- В том то и дело что программа нормально собирается и прекрасно работает. Проблемы начинаются только после того как проект переделали в либу. Рисовали проект вполне профессиональные товарищи, трудно представить что они задавали вызов функций по ASDFS(20 знак., 13.07.2015 16:31)
- вроде как функции в либе автоматом должны становиться weak. не слыхал, чтоб бывали weak разного уровня - Vit(13.07.2015 16:15)
- Ну вот встречаются две либы с одной и той же функцией. Какую линкер возьмет? - ASDFS(13.07.2015 16:27)
- смотрите опции линкера 0men(37 знак., 13.07.2015 16:32 - 16:34)
- Сие нам неведомо. Скорее первую попавшуюся в текущем пробеге. Но видел ругань на явно объявленную в тексте weak при наличии такого же имени в либе, ну и не линковалось. - Vit(13.07.2015 16:32)
- Ну вот встречаются две либы с одной и той же функцией. Какую линкер возьмет? - ASDFS(13.07.2015 16:27)
- А вывод ликера без варнингов? Были проблемы с пропущенными прототипами функций, и линкер ничего не мог предположить о них, линковка пройдет, но программа запросто упадет. Ну и второй вариант - блуждающие указатели. Код из либы попадет в другие DASM(65 знак., 13.07.2015 16:19)
- Не факт что оно просто так совпало. Могли взять что то стандартное и модифицировать. Пример стартап или лоулевел инит. Задача все же объяснить линкеру что моя либа приоритетнее стандартных - глупо шерстить гигантский проект на предмет совпадений и ASDFS(17 знак., 13.07.2015 16:11)