Я пытаюсь скомпилировать версию нашей библиотеки для Mac для клиента, который хочет включить ее в плагин Photoshop, и у него возникают проблемы с подключением нашей библиотеки в свое приложение. Более подробная информация: его плагин построен на основе CS4 Photoshop SDK, что означает, что базовый SDK для Mac OS должен быть 10.4. Моя библиотека статическая, скомпилирована с помощью компилятора Intel 11.1, а базовый SDK также установлен как 10.4.
Я проверил мою библиотеку с помощью небольшого тестового приложения, которое я написал, и оно компилируется и работает нормально (на 10.5). Для репликации среды моего клиента приложение компилируется с помощью gcc и использует базовый SDK 10.4. Хотя это нормально для меня, мой клиент не может связаться с моей библиотекой. Проблема заключается в следующем: неопределенные символы:
"_fputs $ UNIX2003", на который ссылаются из:
_write_message в libMyLib.a (libm_error.o)
Когда я компилирую свою библиотеку с помощью gcc и всех других параметров проекта, все в порядке, он может сгенерировать исполняемый файл. Как только я компилирую с ICL, он выходит из строя. Может ли быть так, что ICL 11.1 не совместим с 10.4? На форуме по компиляторам на Фортране я нашел следующий ответ: «Из результатов при условии, что он выводит Xcode по умолчанию на Mac OS X 10.4, который не поддерживают компиляторы 11.1». (http://software.intel.com/en-us/forums/intel-fortran-compiler-for-linux-and-mac-os-x/topic/68647/)
Означает ли это, что ICL 11.1 не работает на 10.4 или генерируемый им код не работает на 10.4 ??
На следующей странице (http://software.intel.com/en-us/articles/performance-tools-for-software-developers-compatibility-of-intel-compiler-for-mac-os-x-and-xcode/), также говорится, что ICL 11.1 не совместим с 10.4 (опять тот же вопрос: что означает совместимость?). Однако, он говорит, что ICL 10.1 есть, поэтому я попытался. Но теперь даже мое собственное тестовое приложение не связывается по той же причине (неопределенная функция $ UNIX2003).
Кто-нибудь знает в чем проблема и как ее исправить? Или способ обойти это?
Заранее спасибо,
A
PS: бонусное очко, если кто-то знает, что это значит:
ld: абсолютная адресация (возможно, -mdynamic-no-pic), используемая в _Cholesky из libMyLib.a (Cholesky.o), не разрешена в скользящем изображении. Используйте '-read_only_relocs suppress', чтобы включить перемещение текста