0
MPIを使用して並列プロセスを作成するプロジェクトでは、各プロセスがdlopen()を使用して共有オブジェクトライブラリとしてビルドされたモジュールを読み込みます。私が書いているモジュールの1つはサードパーティのライブラリ(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 $<
ありがとう!