Затмение: LD_LIBRARY_PATH, OpenJDK и libjpeg

На моем компьютере для разработки (Linux) я вообще не устанавливал LD_LIBRARY_PATH, так как библиотеки, которые я использую, либо находятся в каталогах по умолчанию, либо я добавил их в ld.conf.

Но когда я использую Eclipse, для моего LD_LIBRARY_PATH установлено значение:

"/usr/lib/jvm/java-6-openjdk/jre/lib/i386/client:
/usr/lib/jvm/java-6-openjdk/jre/lib/i386:
/usr/lib/xulrunner-1.9.2.17:
/usr/lib/xulrunner-1.9.2.17"

(добавлены разрывы строк для удобства чтения).

Я не против xulrunner, но OpenJDK заставляет мои приложения загружаться

/usr/lib/jvm/java-6-openjdk/jre/lib/i386/libjpeg.so

вместо

/usr/lib/libjpeg.so

Что приводит к последующему сбою, так как версия OpenJDK - 6b, а я использую libjpeg 8.

Я знаю, что могу переопределить LD_LIBRARY_PATH при компиляции C++, но он терпит неудачу, как только я пытаюсь выполнить код Python, связывающий только что скомпилированные разделяемые библиотеки.

Как я могу изменить этот глобальный LD_LIBRARY_PATH?


person vartec    schedule 31.05.2011    source источник


Ответы (2)


На ум приходят два метода:

  1. Удалите libjpeg6b из системы и надейтесь, что OpenJDK будет доволен libjpeg8
  2. Перекомпилируйте OpenJDK против libjpeg8
person n. 1.8e9-where's-my-share m.    schedule 31.05.2011
comment
+1 за 1. предложение, хотя еще не принял это как ответ, потому что, во-первых, я не уверен, что это не сломает что-то еще, во-вторых, это на самом деле не ответ на вопрос, хотя помогает с моей проблемой . - person vartec; 01.06.2011

Вы запускаете Python из eclipse? Вы можете установить LD_LIBRARY_PATH на вкладке Конфигурации запуска>Среда, чтобы он переопределял все, что вы видите по умолчанию.

person Paul Webster    schedule 01.06.2011
comment
+1, так как это тоже верное предложение. Проблема с ним в том, что он не глобальный. Приходится повторять это для каждой конфигурации. - person vartec; 03.06.2011