Соответствие ICL, OS X.4 / 5 и Unix ($ UNIX2003) - PullRequest
1 голос
/ 30 октября 2009

Я пытаюсь скомпилировать версию нашей библиотеки для 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', чтобы включить перемещение текста

Ответы [ 2 ]

1 голос
/ 03 ноября 2009

Таким образом, ответ: компилировать с ICL 10.1, а не 11.1. Ни одна из библиотек Intel, используемых в 10.1, не содержит ссылок на подпрограммы $ UNIX2003.

Надеюсь, это кому-нибудь поможет.

A

0 голосов
/ 30 октября 2009

В конечном счете, вам потребуется поддержка продуктов Intel от Intel, но если вы хотите продавать программное обеспечение Mac, которое действительно работает, то вам, вероятно, следует просто использовать тот же набор инструментов, что и все остальные, и забыть об этом.

...