我在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个未解析的外部
当我按照unresolved external symbol "_hypot" when using static library的建议时,我得到以下内容:
1>生成代码... 1> main.obj:错误LNK2005:_hypot已经 在About.obj 1中定义的>致命错误LNK1169:一次或多次乘法 找到已定义的符号
有人可以解释发生了什么吗?
答案 0 :(得分: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