Как установить LAPACK для MSVS 2010 в Windows?

Я использую библиотеку ITPP (библиотека IT++) для одного из своих проектов. Для использования функции eigen_sym() этой библиотеки запрашивается установка LAPACK. Я пробовал использовать готовые библиотеки для Windows, но все равно получаю ошибку. Наконец на следующем сайте:

http://icl.cs.utk.edu/lapack-for-windows/lapack/#libraries

Я нашел решение в разделе «Инструкции по сборке» для создания DLL LAPACK и LAPACKE 3.5.0 для Windows с MinGW, которые могут работать. Я сделал шаги с 1 по 5, но застрял на 6 и далее.

Мой пункт назначения сборки cmake — E:/LAPACK

Я получил ошибку в командной строке cmd при вводе:

cd E:/LAPACK 3.5.0 >Enter
C:/MinGW/bin/mingw32-make.exe >Enter

я собираюсь

mingw32-make.exe> No targets specified and no make file found. Stop.

Может ли кто-нибудь подробно объяснить шаг 6 и далее и сказать мне, где я ошибаюсь? Наконец-то я хочу получить файлы .dll и .lib.


person Xavier Gonsalves    schedule 22.01.2014    source источник
comment
Почему вы используете gcc/mingw, если вам нужна поддержка Visual Studio 2010? Я собираю lapack с помощью Visual Studio.   -  person drescherjm    schedule 22.01.2014
comment
Потому что на странице сказано, что .dll и .libs будут работать, если MinGW/bin добавлен в системный путь   -  person Xavier Gonsalves    schedule 22.01.2014
comment
Я думаю, проблема в том, что у вас нет компилятора fortran. Я сделал ошибку, я строю clapack, который не требует этого.   -  person drescherjm    schedule 22.01.2014
comment
Другие .libs и .dll не работают   -  person Xavier Gonsalves    schedule 22.01.2014
comment
В любом случае, я предполагаю, что вы набираете make и получаете не указанные цели и не найденный файл make. Останавливаться. Потому что нажатие ввода в командном окне не вызовет эту ошибку.   -  person drescherjm    schedule 22.01.2014
comment
Вы настраивали с помощью cmake и генерировали с помощью генератора, предназначенного для make-файлов mingw, а не для Visual Studio? Вы не хотите, чтобы Visual Studio использовала mingw.   -  person drescherjm    schedule 22.01.2014
comment
Я настроил и сгенерировал. Проблема возникает после этого в части приглашения cmd.   -  person Xavier Gonsalves    schedule 22.01.2014
comment
Я делаю cd E:/lapack-3.5>Введите, затем C:/MinGW/bin/mingw32-make.exe>Введите и получите сообщение об ошибке «Нет целей и не найден make-файл».   -  person Xavier Gonsalves    schedule 22.01.2014
comment
Если бы конфигурация/генерация работала, вы бы не получили эту ошибку, потому что процесс генерирует make-файл. Так что либо вы выбрали неправильный генератор в Cmake-gui, либо cmake не удалось сгенерировать. Или вы ищете не в той папке свой makefile.   -  person drescherjm    schedule 22.01.2014
comment
Вы имеете в виду, что E:/lapack-3.5 имеет Makefile?   -  person drescherjm    schedule 22.01.2014
comment
Было бы любезно с вашей стороны, если бы вы могли рассказать мне всю командную строку процесса и далее   -  person Xavier Gonsalves    schedule 22.01.2014
comment
Я считаю, что вы используете правильный процесс. Я не уверен, почему mingw-make не находит Makefile, хотя я не часто им пользуюсь.   -  person drescherjm    schedule 22.01.2014
comment
Вы упомянули другой путь в своем вопросе по сравнению с комментариями. Makefile находится в E:/LAPACK 3.5.0 или E:/lapack-3.5. Вы меняете каталог на тот, в котором есть makefile?   -  person drescherjm    schedule 22.01.2014
comment
Вы можете ознакомиться с шагами, которые я выполнил, по ссылке и скажите мне, если это неправильно или где я могу пойти не так. Я использую машину win32.   -  person Xavier Gonsalves    schedule 22.01.2014
comment
Шаги кажутся мне разумными. Я попробую их через несколько часов, если у меня будет шанс, и никто не нашел решения.   -  person drescherjm    schedule 22.01.2014
comment
У меня получилось построить без особого труда. Ключ был в том, чтобы убедиться, что вы не устанавливаете папку сборки в cmake в ту же папку, что и источник. Я установил исходное дерево в X:\Other\Test\lapack-3.5.0 и установил папку сборки в X:\Other\Test\lapack-3.5.0\build. Затем, после настройки с помощью CMake, я запустил mingw32-make из папки сборки, а не из исходной папки. В исходной папке есть Makefile, но по умолчанию он не работает.   -  person drescherjm    schedule 22.01.2014


Ответы (1)


Мне удалось собрать LAPACK 3.5 для Windows с помощью mingw и руководства по сборке со страницы LAPACK. Используя следующие шаги

  1. Загрузите lapack.tgz отсюда http://netlib.org/lapack/lapack.tgz.
  2. Извлечь в папку. Я использовал файловый менеджер 7zip, чтобы распаковать архив в x:/Other/test.
  3. Установите mingw32. Я использовал это: http://www.mingw.org/download/installer, и я выбрал и установлен mingw32-developer-toolkit + mingw32-base + mingw32-gfortran + mingw32-gcc-g++ + < strong>msys-база
  4. Откройте командную строку
  5. Добавьте mingw к вашему пути

    path=C:/Mingw/bin;%PATH%

  6. change directory to the location you extracted lapack: For me this was X:\Other\Test\lapack-3.5.0 so the command I typed was the following (your path will be different):

    C:\Users\jdrescher>x:
    X:>cd Other\Test\lapack-3.5.0
    X:\Other\Test\lapack-3.5.0>

  7. make a folder for your build. I used build

    X:\Other\Test\lapack-3.5.0>mkdir build

  8. then change directory to the build folder

    X:\Other\Test\lapack-3.5.0>cd build
    X:\Other\Test\lapack-3.5.0\build>

  9. Now configure with CMake

    X:\Other\Test\lapack-3.5.0\build>cmake -G "MinGW Makefiles" -D BUILD_SHARED_LIBS=ON -D CMAKE_GNUtoMS=ON ..

  10. Now use gnu make to build LAPACK

    X:\Other\Test\lapack-3.5.0\build>c:\MinGW\bin\mingw32-make.exe

    Примечание. Этот шаг займет несколько минут.

После того, как описанные выше шаги выполнены на 100% без ошибок, у меня есть следующие dll в папке build\bin: libblas.dll, libblapack.dll, libtmglib. dll

Также следующие библиотеки и файлы exp в папке build\lib: libblas.exp, libblas.lib, libblapack.exp, >liblapack.lib, libtmglib.exp и libtmglib.lib.

person drescherjm    schedule 22.01.2014
comment
Я бы рекомендовал вместо этого использовать minGW64, mingGW не так хорошо поддерживается, как mingw64, и, несмотря на его название, он есть 32-битные компиляторы. - person Mgetz; 22.01.2014
comment
Я проверю это позже. Возможно корректировка моих инструкций. - person drescherjm; 22.01.2014