Jul 11, 2012 at 12:46pm Jul 11, 2012 at 12:46pm UTC
Hi all,
I use the
gnu scientific library gsl . My application compiles and link well. But when it comes to execution, at this line :
gsl_permute_char(gsl_permutation_data(p), (char *)line, lineSize, sizeof (uchar));
Previous definitions :
1 2 3
typedef unsigned char uchar;
uchar line[2*BLOCK];
gsl_permutation * p = gsl_permutation_calloc (line2Size);
I get the error :
"No source available for "gsl_permute_char() " "
Here is my compile command :
g++-4.7.1 -DDEBUG -I"/disk_alain/alain/Documents/WorkSpace/MyUtils/src" -O0 -g3 -Wall -c -fmessage-length=0 -std=c++11 -march=corei7 -mtune=corei7
My link command :
g++-4.7.1 -L"/disk_alain/alain/Documents/WorkSpace/MyUtils/Debug"
In the Eclipse-SDK I use, libraries ar also invoked with
-l gsl
If I add it explicitely, nothing is changed.
I have recompiled gsl from gcc-4.5 to gcc-4.7.1, and tried gsl 1.14 and 1.15-r2 : nothing changed.
Any idea please ?
Last edited on Jul 11, 2012 at 12:46pm Jul 11, 2012 at 12:46pm UTC
Aug 1, 2012 at 8:55am Aug 1, 2012 at 8:55am UTC
The error came from a misuse of gsl_ran_shuffle just before the call of gsl_permute_char , with a bride corresponding to the data I want to shuffle (uchar ), instead of a bride corresponding to the permutation itself (size_t ) :
BAD : gsl_ran_shuffle (r, p->data, N, sizeof (uchar));
GOOD : gsl_ran_shuffle (r, p->data, N, sizeof (size_t));