- Code: Select all
#include "../CLAPACK/F2CLIBS/f2c.h"
#include "../CLAPACK/SRC/blaswrap.h"
#include "../CLAPACK/clapack.h"
and i compiled it using gcc version 3.4.3 with the following command:
- Code: Select all
gcc -o test test.c ../CLAPACK/lapack_LINUX.a ../CLAPACK/blas_LINUX.a ../CLAPACK/F2CLIBS/libF77.a -lm
This compiles without a problem. Now, when i try to do this from c++, i was under the impression that enclosing the header files in extern "C" { } would be enough to get it to work, i.e.,
- Code: Select all
extern "C"{
#include "CLAPACK/F2CLIBS/f2c.h"
#include "CLAPACK/SRC/blaswrap.h"
#include "CLAPACK/clapack.h"
}
I tried to compile using (freq.cpp is the main program, the other .cpp programs contain other functions called by it)
- Code: Select all
g++ -o freq freq.cpp derivs.cpp equation.cpp CLAPACK/lapack_LINUX.a CLAPACK/blas_LINUX.a CLAPACK/F2CLIBS/libF77.a
but i immediately get a bunch of errors from f2c.h, for instance:
- Code: Select all
In file included from freq.cpp:7:
CLAPACK/F2CLIBS/f2c.h:16: error: `real' does not name a type
CLAPACK/F2CLIBS/f2c.h:132: error: `real' does not name a type
CLAPACK/F2CLIBS/f2c.h:134: error: `complex' does not name a type
CLAPACK/F2CLIBS/f2c.h:174: error: ISO C++ forbids declaration of `real' with no
type
CLAPACK/F2CLIBS/f2c.h:174: error: typedef `real' is initialized (use __typeof__
instead)
and so on...Also, clapack.h generates a million errors because somehow apparently all the types defined in f2c.h (real, integer, and so on) aren't recognized when the compiler goes through clapack.h. for instance,
- Code: Select all
In file included from freqFinder.cpp:9:
CLAPACK/clapack.h:5: error: `real' has not been declared
So if anyone has any ideas about what i'm doing wrong, or why gcc has no problems with f2c.h while g++ generates many many errors, I'd appreciate any help. Perhaps i am mistaken about the extern "C" part? I should also note that i'm not using ATLAS BLAS but merely the one available with clapack at http://netlib2.cs.utk.edu/clapack. I'll probably change that at some point, but for now i'm just trying to get it to work without worrying about optimization or any of that. Thanks!

