这种错误很常见!属于链接错误!
通常情况为只对方法函数进行了一个声明,而却没有给予实现。这样做的结果是,如果其他地方没有调用这个函数,一切正常;如果其他地方有调用这个函数,那就会产生你遇到的这种错误!
比如,
// file: a.h
int a();
void test();
// file: a.cpp
// 没有给出test()的实现
int a()
{
}
// file: c.cpp
#include "a.h"
int c()
{
int ret = a(); // 编译、链接通过!
test(); // 编译通过、链接不通过!
}
所以楼主应该仔细检查下,gmpq_mul这个函数