I have written a code in C.
You can find the source code here.
It makes use of the libraries blas, lapack and openmp.
I have compiled the blas and lapack libraries following these instrucions.
I use these flags to tell the compiler the libraries that it should link: -lblas -llapack -fopenmp
.
I was using gcc 4.9
and the program can run correctly.
Recently I have updated gcc to gcc 6 and it shows many warning msgs about the implicit declaration of the blas and lapack functions:
src/PSIRWLS-train.c:152:17: warning: implicit declaration of function 'dgemm_' [-Wimplicit-function-declaration]
dgemm_(&trans, &trans, &(dataset.l), &ncols, &size,&factorA, KSC, &(dataset.l), miZ, &size, &factor, miKSM, &(dataset.l));
And when I run the app a segmentation fault error appears.
I am completely lost about the differences of gcc 4.9 and gcc 6, do you know any explanation about this?