Я использую Mac OS X, 10,6 SDK и моя цель развертывания установлены на Mac OS 10.5. Я связываюсь с libcrypto (AquaticPrime требует этого), и узнал, что мое приложение не запускается на Leopard. Ошибка
dyld: Library not loaded: /usr/lib/libcrypto.0.9.8.dylib
Я попробовал следующие обходные решения, но ни один из них не работает:
libcrypto.0.9.7.dylib
(10,6 SDK отказываются связываться непосредственно с libcrypto.0.9.7.dylib
.libcrypto.0.9.7.dylib
к 10,6 каталогам lib и попытке t ссылка с ним (на этот раз процесс ссылки, за которым следуют, но в Leopard, приложение все еще пробует к поиску несуществующее libcrypto.0.9.8.dylib
файл и таким образом не запустится).libcrypto.0.9.7.dylib
из Mac OS X 10.5.8 установок и ссылка с ним (ссылка была успешна, но приложение все еще ищет libcrypto.0.9.8.dylib
).Существует ли способ связаться с этой библиотекой и все еще использовать 10,6 SDK?
Спасибо.
Вы можете попробовать установить для базового SDK значение 10.5 в настройках целевой сборки.
Согласно этой теме здесь (первое сообщение в теме: http://lists.apple.com/archives/cocoa-dev/2009/Aug/msg01737.html , «libcrypto on Snow Leopard» список потоков: http://lists.apple.com/archives/cocoa-dev/2009/Aug/thrd19.html ), я считаю, что решение состоит в следующем:
Перейдите в / Разработчик / SDK / MacOSX10.5.sdk / usr / lib /. Из этой папки скопируйте libcrypto.0.9.7.dylib в исходную папку проекта.
Переименуйте только что скопированный файл в libmycrypto.dylib.
Добавьте файл, который вы только что переименовали, в свой проект. Обязательно удалите из своего проекта любые другие связанные фреймворки libcrypto.
Просмотрите настройки сборки и убедитесь, что вы удалили флаг компоновщика «-lcrypto». (Обычно это указывается в параметре «Другие флаги компоновщика».)
Теперь вы сможете собрать свой проект, и он будет работать как на 10.5, так и на 10.6.
(libcrypto.0.9.7 доступен как в 10.5, так и в 10.6. Скопированный вами файл - это просто заглушка заголовков, но вы просто связываете его, а не , а не встраиваете его в свой проект) .Поскольку компоновщик использует путь установки, а не фактическое имя файла dylib, присвоение ему имени «libmycrypto.dylib» устраняет конфликты путей, но по-прежнему позволяет вам компоноваться с нужной вам библиотекой.
FWIW, это проблема Xcode. У вас должна быть возможность установить ссылку на /usr/lib/libcrypto.dylib - символическую ссылку - и настроить ее на правильную версию libcrypto как в 10.5, так и в 10.6. Однако Xcode всегда, кажется, ссылается на версию 0.9.8, когда по какой-то причине опираясь на Snow Leopard.)
У вас пробовали линковать libcrypto.0.9.dylib или libcrypto.dylib вместо конкретных версий?