Я сижу в среде, над которой у меня нет реального контроля (это не только я, поэтому, в принципе, я не могу изменить среду или она не будет работать для кого-то еще), единственное, на что я могу повлиять как построен бинарный файл.
Моя проблема в том, что среда определяет LD_LIBRARY_PATH, содержащий libstdc ++, который не совместим с используемым компилятором. Я пытался компилировать его статически, но это не представляется возможным для g ++ (версия 4.2.3, кажется, была проделана работа в этом направлении в более поздних версиях, хотя они недоступны, -static-libstdc ++ или что-то в этом роде).
Теперь я пришел к использованию rpath, чтобы запечь абсолютный путь к исполняемому файлу (будет работать, все машины, на которых он должен работать, идентичны). К сожалению, создается впечатление, что LD_LIBRARY_PATH имеет приоритет над rpath (сброс LD_LIBRARY_PATH подтвердил, что он может найти библиотеку, но, как указано выше, LD_LIBRARY_PATH будет установлен для всех, и я не могу это изменить).
Можно ли как-нибудь сделать так, чтобы rpath имел приоритет над LD_LIBRARY_PATH, или есть ли другие возможные решения моей проблемы? Обратите внимание, что я говорю о динамическом линковании во время выполнения, я могу управлять командной строкой во время компиляции и компоновки.
Спасибо.