我有一个makefile用于使用zkcm-library的一些程序,包括以下对象行:
zkcm_c.o: zkcm_c.cpp zkcm_c.h config.h
g++ -c zkcm_c.cpp -lgmp -lgmpxx -lmpfr
编译器抱怨存在“未定义的'_ imp _mpfr__inits2'引用”,并且每次使用mpfr函数都是一样的。奇怪的是,makefile中有其他对象使用mpfr函数没有问题,例如主程序(第一行):
SpMC: SpMC.cpp MCutility.h HPutility.h wfs.h MC_funcs.h $(ZKCMOBJECTS) $(ZKCMHFILES)
g++ SpMC.cpp -lgmp -lmpfr -lmpc -o SpMC $(ZKCMOBJECTS)
在这两种情况下,我在源代码中都有#include<mpfr.h>
,并且您看到使用-lmpfr
链接到它。任何想法为什么这适用于SpMC.cpp但不适用于zkcm_c.cpp?