我正在尝试使用 GSLcomplex numbers
, complex vectors
and complex matrices
在我的项目中。我使用的是VS2010,我在中添加了库的地址配置属性>C/C++>常规>其他包含目录。但我有一个愚蠢的问题。据我了解,我不能使用=
分配两个gsl_complex
, gsl_vector_complex
or gsl_matrix_complex
对彼此。
对于向量我必须使用gsl_vector_complex_set
对于矩阵gsl_matrix_complex_set
。但是对于gsl_complex,我只发现GSL_SET_COMPLEX其中我应该将实部和虚部分别作为两个参数给出:
GSL_SET_COMPLEX (zp, real, imaginary)
在我的代码中我有这样的功能:
gsl_complex cmx, cmx2;
void vector_complex_exp(gsl_vector_complex *v)
{
for (i = 0; i < v->size; i++)
{
gsl_vector_complex_set(v, i, gsl_complex_exp(gsl_vector_complex_get(v, i)));
}
}
使用这个,我得到以下错误:
错误 LNK1120:2 未解析的外部引用。
错误 LNK2001:无法解析的外部符号“_hypot”。
错误 LNK2001:无法解析的外部符号“_log1p”。
错误 LNK2001:无法解析的外部符号“_log1p”。
我不明白这些错误背后的原因。但我这样重写我的代码:
void vector_complex_exp(gsl_vector_complex *v)
{
for (i = 0; i < v->size; i++)
{
cmx = gsl_vector_complex_get(v, i);
//cmx2 = gsl_complex_exp(cmx);
gsl_vector_complex_set(v, i, cmx2);
}
}
这里当 for 的第二行被注释时,没有错误。但是当我取消注释时,我得到以下信息:
错误 LNK1120:2 个未解析的外部引用。
错误 LNK2001:无法解析的外部符号“_log1p”。
错误 LNK2019:在函数“_gsl_complex_div”中引用未解析的外部符号“_hypot”。
错误 LNK2019:在函数“_gsl_complex_logabs”中引用未解析的外部符号“_log1p”。
我没有_gsl_complex_div
or _gsl_complex_logabs
我的代码中的函数。所以我很确定问题出在这里的分配上。但我也不能在这里使用 GSL_SET_COMPLEX 。
有人可以帮我弄这个吗?难道真的没有办法直接给gsl_complex赋值吗?