我最近一直在使用GNU GSL进行矢量计算 - 到目前为止,它已经很棒了! 然而,现在,我想对两个向量进行排序(排序一个向量,然后根据前者对另一个向量进行排序)。幸运的是,GNU GSL似乎有一个功能,如引用:
Function: void gsl_sort_vector2 (gsl_vector * v1, gsl_vector * v2)
This function sorts the elements of the vector v1 into ascending numerical order, while making the same rearrangement of the vector v2.
..这正是我想要的。但是,当我尝试实现这一点时,我在gsl_sort_vector2
上一直收到未定义的错误。因此,我的skeletal
代码如下所示:
#include <stdio.h>
#include <math.h>
#include <gsl/gsl_vector.h>
#include <gsl/gsl_sort_vector.h>
< do some vector related stuff here >
/* +++ This works completely fine ++++ */
/* gsl_sort_vector (res); */
/* +++ This gives the undefined error ++++ */
gsl_sort_vector2 (res, id);
其中res
和id
是GSL向量。
编译时,错误只是:
undefined reference to gsl_sort_vector2 collect2: error: ld returned 1 exit status
我想知道我可能做错了什么 - 但到目前为止这一点非常不成功。 如果有人能指出我正确的方向,我真的很感激。
答案 0 :(得分:1)
GSL trunk page显示gsl_sort_vector2
仅在版本1.16(提交4821)中添加。然后,您可能正在使用旧版本的库,因为您声明所有其他向量操作都正常工作(意味着没有链接问题)