提问人:hly19 提问时间:10/5/2021 最后编辑:hly19 更新时间:10/5/2021 访问量:640
对符号“pthread_mutexattr_setpshared@@GLIBC_2.2.5”的未定义引用
undefined reference to symbol 'pthread_mutexattr_setpshared@@GLIBC_2.2.5'
问:
我试图添加-lpthread,但它没有用。这是我的 makefile:
mpi_bench: mpbench.o flushall.o timer.o my_send.o mem_manager.o
$(MP_MPI_CC) $(MP_LDFLAGS) mpbench.o flushall.o timer.o my_send.o mem_manager.o -o $@ $(MPI_LIBS) $(MP_LIBS)
mpbench.o: mpbench.c
$(MP_MPI_CC) $(MP_CFLAGS) $(MPI_INC) -DMPI -I.. -c mpbench.c -o mpbench.o
timer.o: ../timer.c
$(MP_MPI_CC) -c -I.. ../timer.c -o $@
flushall.o: ../flushall.c
$(MP_MPI_CC) -c -I.. ../flushall.c -o $@
my_send.o: my_send.cpp
$(MP_MPI_CC) -c -I.. my_send.cpp -o my_send.o -lrt
mem_manager.o: mem_manager.cpp
$(MP_MPI_CC) -c -I.. mem_manager.cpp -o mem_manager.o -lrt -lpthread
这是错误信息
mpicc mpbench.o flushall.o timer.o my_send.o mem_manager.o -o mpi_bench -lrt
/usr/bin/ld: mem_manager.o: undefined reference to symbol 'pthread_mutexattr_setpshared@@GLIBC_2.2.5'
/usr/bin/ld: /lib/x86_64-linux-gnu/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
谁能帮我?非常感谢
答: 暂无答案
评论
-lrt
-lpthread
-pthread
-pthread
适用于 GNU 编译器,但不可移植(例如,PGI 编译器不支持它)。永远不要说永远;-)