Название: Static library linking Отправлено: Alp от Июль 20, 2010, 17:44 Есть у меня библиотека, написанная плохо, криво, но она работает. И есть софт который её использует. Однако спонтанно эта либа перестает линковаться с детскими ошибками вроде:
Код Дело происходит под 2008 студией. Вызываемая функция разумеется есть, добавлена в проект и вообще существует. Сигнатуры в порядке (в хедэре и cpp-файле соответствуют). Генерация кода для либы и для приложения одинаковая (/MTd). Соглашения о вызовах для приложения и либы одинаковы (стоят по-умолчанию _cdecl). Отдельно в либе квалификатор вызова не указывал (UPD: Указал - положение дел не изменилось) Какие еще есть идеи почему может падать на линковке? //Создать новый проект нельзя - много файлов в нем и к тому же он сделан генератором из pro-файла. Название: Re: Static library linking Отправлено: Igors от Июль 20, 2010, 19:30 Попробовать объявить ее extern "C" (в хедере который используется для обоих)
Название: Re: Static library linking Отправлено: Alp от Июль 20, 2010, 19:36 Попробовать объявить ее extern "C" (в хедере который используется для обоих) Попахивает шаманством.Создал простейший тестовый проект, подключил эту либу, вызвал указанные "анрезолведы". Собралось и запустилось без проблем. Нее, тут дело в чем-то другом. Название: Re: Static library linking Отправлено: DmP от Июль 21, 2010, 12:54 При линковке статических либ, важен их порядок подключения.
Название: Re: Static library linking Отправлено: Alp от Июль 21, 2010, 20:26 При линковке статических либ, важен их порядок подключения. В чем важность этого порядка выражается? Есть либа1 и либа2, которые друг от друга не зависят никак, можно подключить одну, другую или обе. Так вот при всех трёх раскладах из либы1 не экспортируются имена нескольких функций.Название: Re: Static library linking Отправлено: DmP от Июль 23, 2010, 12:28 Есть либа1 и либа2, которые друг от друга не зависят никак, можно подключить одну, другую или обе. Ну тогда и не важен порядок.Возможно проблема в заголовках, где то переопределяется функция или char. Можно попробовать включать заголовок с otf2fog_init первым/последним, посмотреть есть ли разница. |