где взять -lmpi ? (проблема со сборкой программы)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Andrjuha
Сообщения: 3

где взять -lmpi ?

Сообщение Andrjuha »

При попытке сборки программы написанной на С и предназначенной для расчетов по методу молекулярной динамики выдается сообщение
/usr/bin/ld: cannot find - lmpi
Сборка производилась под Fedora Core 5
Ранее под Debian проблем со сборкой не было. Подскажите пожалуйста как с этим бороться? Я понимаю, что не хватает какой то библиотеки, но вопрос в том где ее взять?
Спасибо сказали:
Аватара пользователя
aLexx programmer
Сообщения: 985
Статус: Турук-Макто
ОС: Gentoo -> Ubuntu

Re: где взять -lmpi ?

Сообщение aLexx programmer »

Набрав в гугле "-lmpi" и пройдя по третьей ссылке, я попал на страницу, откуда можно это чудо скачать. Пробовали?
Спасибо сказали:
Andrjuha
Сообщения: 3

Re: где взять -lmpi ?

Сообщение Andrjuha »

aLexx programmer писал(а):
08.08.2006 21:38
Набрав в гугле "-lmpi" и пройдя по третьей ссылке, я попал на страницу, откуда можно это чудо скачать. Пробовали?

Пробовали, это не оно. Здесь слово Library не в том смысле использовано. То что находиться по третьей ссылке - это, как я понял, некая программа для мониторинга и анализа работы программ для параллельных вычислений и оно само требует для своей работы какую то стандартную liblmpi.a.
Собственно в надежде, что нужная библиотека обнаружится в одном из пакетов для многопроцессорных вычислений я пробовал установть пакеты mpich и openmpi, но это тоже не помогло.
Спасибо сказали:
Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin

Re: где взять -lmpi ?

Сообщение Bolverk »

Andrjuha писал(а):
08.08.2006 21:49
Собственно в надежде, что нужная библиотека обнаружится в одном из пакетов для многопроцессорных вычислений я пробовал установть пакеты mpich и openmpi, но это тоже не помогло.

а -devel ?
Спасибо сказали:
Andrjuha
Сообщения: 3

Re: где взять -lmpi ?

Сообщение Andrjuha »

Bolverk писал(а):
08.08.2006 23:00
Andrjuha писал(а):
08.08.2006 21:49

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

а -devel ?

Вот devel и правда помог, но не до конца, теперь ошибка выглядит таким образом:
angle_charmm.cpp:(.text+0x9d3): undefined reference to `MPI_Bcast(void*, int, int, int, int)'
.........................................................
много-много подобных строчек
.........................................................
collect2: ld returned 1 exit status

Есть предположение, что нужно сделать какие-то поправки в make-файле, который выглядит следующим образом:


SHELL = /bin/sh

CC = g++
CCFLAGS = -O -I../STUBS -DFFT_NONE
DEPFLAGS = -M
LINK = g++
LINKFLAGS = -O -L../STUBS
USRLIB = -lmpi
SYSLIB =
ARCHIVE = ar
ARFLAGS = -rc
SIZE = size

# Link target

$(EXE): $(OBJ)
$(LINK) $(LINKFLAGS) $(OBJ) $(USRLIB) $(SYSLIB) -o $(EXE)
$(SIZE) $(EXE)

# Library target

lib: $(OBJ)
$(ARCHIVE) $(ARFLAGS) $(EXE) $(OBJ)

# Compilation rules

%.o:%.cpp
$(CC) $(CCFLAGS) -c $<

%.d:%.cpp
$(CC) $(CCFLAGS) $(DEPFLAGS) $< > $@

# Individual dependencies

DEPENDS = $(OBJ:.o=.d)
include $(DEPENDS)

может кто в курсе в чем эдесь проблема?
Спасибо сказали:
Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin

Re: где взять -lmpi ?

Сообщение Bolverk »

Makefile тут абсолютно не причём
что-то в исходниках ссылается на функцию MPI_Bcast(void*, int, int, int, int), которой нет в библиотеке
так что проверяй версии библиотек, они либо слишком старые, либо слишком новые
Спасибо сказали: