Я работаю над проектом, который использует MPI для создания параллельных процессов, каждый процесс использует dlopen() для загрузки модуля, который был создан как библиотека общих объектов. Один из модулей, которые я пишу, использует стороннюю библиотеку (HDF). Когда я запускаю программу, dlopen выдает ошибку: dlopen не удался: /home/jwomble/QTProjects/SurrogateModule/libsurrogate.so: неопределенный символ: H5T_NATIVE_INT32_gОбщая библиотека объектов и MPI
Неопределенный символ в библиотеке HDF. Как загрузить символы из библиотеки HDF?
В настоящее время мой макияж файл выглядит следующим образом:
CC = mpicc
INCDIR = -I /home/jwomble/QTProjects/STARExecutive/src/star_comm \
-I /home/jwomble/QTProjects/STARExecutive/src/executive \
-I /home/jwomble/QTProjects/Star \
-I ./phdf/include
CFLAGS = -Wall -rdynamic -g -fPIC $(INCDIR)
all: libsurrogate.so
libsurrogate.so: SurrogateModule.o
$(CC) -shared --export-dynamic -o [email protected] $<
SurrogateModule.o: SurrogateModule.c
$(CC) $(CFLAGS) -lhdf5 -c $<
Спасибо!