Если вы создаете программу с одной версией Studio (например, 11 или 12.x), вы не можете рассчитывать на ссылки на библиотеки из более ранних версий Studio. Вы не говорите, какой язык программирования вы используете, но проблема чаще всего встречается с Fortran и C++.
Например, если вы не предпримете шаги, чтобы избежать этой проблемы (см. ниже), программы на C++, использующие библиотеки STLport или Interval, будут пытаться во время выполнения связываться с общими библиотеками, установленными вместе с компилятором. Если программа была собрана с помощью Studio 11 или 12.x, линковка с библиотеками Studio 10 не будет работать.
Однако, если программа ссылается только на библиотеки времени выполнения по умолчанию в /usr/lib, то, установлена ли Studio в целевой системе или какая версия установлена, не имеет значения. Вы можете узнать, так ли это, запустив "ldd" в своей программе в системе, где вы ее создали:
% ldd myprog
Вывод покажет все общие библиотеки, которые использует программа, и откуда они берутся. Если ни одна из библиотек не находится в области установки компилятора, у вас нет проблемы.
Единственная другая проблема — совместимость с Solaris. Если вы создаете программу для Solaris версии N, вы можете ожидать, что программа будет работать в Solaris N+1 или более поздней версии, но не в Solaris N-1 или более ранней версии. Причина в том, что Solaris сохраняет старые интерфейсы, но добавляет новые. Программа может зависеть от интерфейса Solaris, отсутствующего в более ранней версии Solaris. В частности, для Solaris 10 более поздние обновления представили новые функции и интерфейсы, которых не было в более ранних обновлениях. Например, если вы создаете программу на основе обновления 10, она может не работать на исходной версии Solaris 10.
Кроме того, если система сборки была исправлена с помощью более поздней версии библиотек времени выполнения C++ (пакет SUNWlibC), целевая система должна иметь такой же или более поздний патч. Узнать версию патча можно, выполнив команду
% showrev -p | grep SUNWlibC
Возвращаясь к моему первоначальному обсуждению библиотек, поставляемых вместе со Studio, в этой статье
http://www.oracle.com/technetwork/articles/servers-storage-dev/linkinglibraries-396782.html
описывает лучшие методы создания программ для распространения, чтобы они не зависели от установки компилятора.
Стив Кламейдж Команда компилятора Oracle C++
person
Steve Clamage
schedule
19.10.2012