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