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

Я получаю точно такую ​​же ошибку, которая имеет какой-то смысл, поскольку они являются объектными файлами, а не заголовочными файлами. Что я делаю неправильно? Как управлять объявлениями функций, реализованных во внешних библиотеках?

Спасибо!

0 ответов

Другие вопросы по тегам