У меня есть библиотека, скомпилированная в файл .a, связанный с моим приложением. (iphone, развивающийся с помощью Xcode)linking mess с libc
Все кажется прекрасным, ссылка кажется успешной, но когда я запускаю программу, она сработает. Точка сбоя - вызов memcmp() в статически связанной библиотеке. Отладчик показывает все виды вещей, называемых «dyld» в своих именах, поэтому кажется, что по какой-либо причине он не может решить memcmp, начинает искать динамические библиотеки, а затем терпит неудачу.
AFAIK memcmp находится в libc, поэтому не должно быть проблемой. (попробовал также передать -lc в компоновщик, и это не помогло, как я и ожидал)
Итак, как это должно работать? Почему не может статически связанная библиотека использовать что-либо из libc? Как его скомпилировать?
Спасибо
С помощью библиотеки вы связались с заявлением, которое вы написали сами? - Я не могу не подозревать, что он использует неинициализированный или нулевой указатель. Или, может быть, вы неправильно используете библиотеку, которая вызывает недопустимый указатель? Что говорит задняя линия? –
Нет, это широко используемая библиотека, надежно работающая на многих платформах, и она не работает с самого начала с функцией инициализации. Один и тот же фрагмент кода (на самом деле 2 вызова функции для настройки). Backtrace указывает на функцию memcmp. (библиотека была скомпилирована в режиме отладки) – 2009-11-17 15:48:33