загрузка библиотеки на кластер - PullRequest
1 голос
/ 19 января 2011

Я успешно скомпилировал программу на c ++ с boost, на кластере, который у нас здесь есть. Мне нужно запустить скрипт SGE, чтобы запустить симуляцию. Ошибка, которую я получаю, это

. / Main: ошибка при загрузке библиотеки: libboost_thread.so.1.45.0: невозможно открыть общий объектный файл: Нет такой файл или каталог

Нужно ли указывать имя библиотеки при запуске программы? Сценарий, который я использовал ниже

#!/bin/sh
# (c) 2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
# This is a simple example of a SGE batch script

# request Bourne shell as shell for job
#$ -S /bin/sh

#$ -N cr_number       # this name shows in qstat
#$ -S /bin/bash      # run with this shell
#$ -l h_rt=50:00:00  # need 50 hour runtime
#$ -pe mpich 4       # define parallel env
#$ -cwd     # run the job in the directory specified.
#$ -o cr_number.out
#$ -e cr_number.err
# (-j will merge stdout and stderr)

#$ -notify
#$ -M user@abc.com - send mail about this job to the given email address.
#$ -m beas          # send a mail to owner when the job
#                       begins (b), ends (e), aborted (a),
#                       and suspended(s).         and suspended(s).

./main

Спасибо

Ответы [ 2 ]

2 голосов
/ 19 января 2011

Самый простой вариант - скомпилировать статический двоичный файл.(С gcc используйте -static. Для других компиляторов RTFM.)

Другой вариант - установить переменную окружения LD_LIBRARY_PATH в каталог, содержащий библиотеки Boost, внутри скрипта задания:

LD_LIBRARY_PATH=/where/ever/you/installed/boost

Если вы не установили Boost самостоятельно, вы можете узнать, где ваша программа ищет свои библиотеки с помощью ldd main.

0 голосов
/ 19 января 2011

На какой платформе вы используете SGE?Все ли узлы имеют одинаковую архитектуру?Какие компиляторы вы используете?Библиотека должна присутствовать в одном и том же месте на каждом узле, который вы собираетесь запускать динамически.Опция, предложенная @larsmans, вероятно, является лучшей идеей (запуск статического скомпилированного двоичного файла).

...