Lapack с 64-битным и Cy ++ кодом Cygwin
Я хотел бы узнать, как использовать lapack вместе с кодом C/C++ в Windows. Я новичок в программировании на C/C++, поэтому я знаю, как программировать на C, как организовать код в h/c-файлах и как скомпилировать их с помощью gcc в cygwin / MinWG / VS. Я совершенно новичок в использовании внешних библиотек, таких как lapack.
Чтобы узнать, как использовать его с Cygwin (64bit), я следовал процедуре, указанной здесь
( http://matrixprogramming.rudnyi.ru/2011/04/using-lapack-from-c/)
который казался успешным и создал встроенную версию lapack в папке $HOME\lapack-3.3.0
Теперь я хочу перезапустить этот пример: main.cc
Я попытался скомпилировать его, позвонив
$ g++ -O3 main.cc -L$HOME/lapack-3.3.0 -llapack -lblas -lgfortran -I ./include -o main
и что я получаю
main.cc: In function ‘int main(int, char**)’:
main.cc:39:23: error: ‘dgetf2’ was not declared in this scope
info = dgetf2(A, ipvt);
^
main.cc:45:23: error: ‘dgetrf’ was not declared in this scope
info = dgetrf(A, ipvt);
^
main.cc:55:26: error: ‘dgetrs’ was not declared in this scope
info = dgetrs(A, B, ipvt);
^
где папка "include" содержит только матричный класс Matrix.h, необходимый для main.cc
Мне кажется, что некоторые заголовочные файлы отсутствуют. Я не понимаю, как это возможно, если процесс создания библиотек прошел успешно. Должен ли я дать дальнейшие "-I варианты"? Я искал "dgetf2", "dgetrf" и "dgetrs" в папке lapack-3.3.0, поэтому я нашел объектные файлы в $HOME\lapack-3.3.0\SRC, но если я включу их, а также
$ g++ -O3 main.cc -L$HOME/lapack-3.3.0 -llapack -lblas -lgfortran -I ./include -I $HOME/lapack-3.3.0/SRC -o main
Я получаю точно такую же ошибку, которая имеет какой-то смысл, поскольку они являются объектными файлами, а не заголовочными файлами. Что я делаю неправильно? Как управлять объявлениями функций, реализованных во внешних библиотеках?
Спасибо!