0

我在 Windows 7 / Visual Studio 2010 中构建项目时遇到困难,并且已经花费了比我承认的时间更长的时间来搜索和修复其他错误以达到这一点,但令人沮丧的是,我似乎无法摆脱最后一个错误. 存在与 math.h 中定义的 _hypot 函数相关的链接器错误:

wxTheAppInitializer" (?wxTheAppInitializer@@3VwxAppInitializer@@A) 已在 main.obj 1>libgsl.a(linalg_svd.o) 中定义:错误 LNK2019:未解析的外部符号 _hypot 在函数 _gsl_linalg_SV_decomp 1>libgsl.a(matrix_oper.o) 中引用:错误 LNK2001:未解析的外部符号 _hypot 1>libgsl.a(linalg_householder.o):错误 LNK2001:未解析的外部符号 _hypot

: 致命错误 LNK1120: 1 未解决的外部

当我在使用静态库时遵循未解析的外部符号“_hypot”的建议时,我得到以下信息:

1> 生成代码... 1> main.obj : 错误 LNK2005: _hypot 已在 About.obj 中定义 1> 致命错误 LNK1169: 找到一个或多个多重定义的符号

谁能解释发生了什么?

4

1 回答 1

0

创建具有以下内容的 .c 文件:

extern double fabs(double);
extern double sqrt(double);

double hypot(double x, double y) {
  double ax = fabs(x), ay = fabs(y);
  double xy = x/y, yx = y/x;
  return ax > ay
    ? ax * sqrt(1.0 + yx*yx)
    : ay * sqrt(1.0 + xy*xy);
}

不包括 math.h

于 2012-11-23T05:26:20.080 回答