0
我正在使用MPI創建並行進程的項目,每個進程使用dlopen()加載已作爲共享對象庫構建的模塊。我正在編寫的一個模塊使用第三方庫(HDF)。當我運行該程序,dlopen的拋出一個錯誤: dlopen的失敗:/home/jwomble/QTProjects/SurrogateModule/libsurrogate.so:未定義的符號:H5T_NATIVE_INT32_g共享對象庫和MPI
未定義的符號在HDF庫。我如何從HDF庫加載符號?
目前,我的make文件看起來是這樣的:
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 $<
謝謝!