2.3 Установка MathGL

Установка библиотеки возможна 4-мя способами.

  1. Скомпилировать библиотеку непосредственно из исходных файлов. С библиотекой поставляется файлы для системы сборки CMake. Для его запуска достаточно в командной строке выполнить 3 команды: сначала cmake . дважды, далее make и, наконец, с правами суперпользователя make install. Иногда после компиляции библиотеки может потребоваться обновление списка библиотека в системе – выполните команду ldconfig с правами суперпользователя.

    Есть несколько дополнительных опций, которые по умолчанию отключены. К их числу относятся: enable-fltk, enable-glut, enable-qt4, enable-qt5 для поддержки FLTK, GLUT и/или Qt окон; enable-jpeg, enable-gif, enable-hdf5 для поддержки соответствующих форматов; enable-all для включения всех возможностей. Для использования типа double для внутреннего хранения данных используйте опцию enable-double. Для создания интерфейсов к другим языкам (кроме С/Фортран/MGL) используйте опции enable-python, enable-octave или enable-all-swig для всех поддерживаемых языков. Вы можете воспользоваться WYSIWYG утилитой (cmake-gui) для просмотра и изменения всех опций, или выполнить cmake -D enable-all=on -D enable-all-widgets=on -D enable-all-swig=on . в командной строке для включения всех опций.

    При сборке с помощью MinGW необходимо дополнительно установить опцию сборки -fopenmp (т.е. CMAKE_EXE_LINKER_FLAGS:STRING='-fopenmp' и CMAKE_SHARED_LINKER_FLAGS:STRING='-fopenmp') если включена поддержка OpenMP (enable-openmp=ON).

  2. Использовать предварительно скомпилированные файлы – с библиотекой поставляются файлы для MinGW (платформа Win32). В скомпилированной версии достаточно распаковать заголовочные файлы в папку с заголовочными файлами и библиотеку libmgl.a в папку с библиотеками. По умолчанию, скомпилированная версия включают поддержку GSL (www.gsl.org), PNG, GIF и JPEG. Соответственно, при сборке программы эти библиотеки должны быть установлены (их можно найти на http://gnuwin32.sourceforge.net/packages.html).
  3. Установить из стандартных пакетов (RPM, deb, DevPak и пр.).

Последнюю версию (которая может быть не стабильна) можно загрузить с sourceforge.net SVN с помощью команды

svn checkout http://svn.code.sf.net/p/mathgl/code/mathgl-2x mathgl-code

ВАЖНО! MathGL использует набор defines, определяемых на этапе конфигурирования библиотеки. Это MGL_SYS_NAN, MGL_HAVE_TYPEOF, MGL_HAVE_PTHREAD, MGL_HAVE_ATTRIBUTE, MGL_HAVE_C99_COMPLEX, MGL_HAVE_RVAL. Они могут отличаться при использовании бинарников скомпилированных другим компилятором (например при использовании скомпилированных MinGW бинарников в VisualStudio). Я специально устанавливаю их в 0 для компиляторов Borland и Microsoft из соображений совместимости. Кроме того, настройки по умолчанию подходят для компиляторов GNU (gcc, mingw) и clang. Однако, для прочих компиляторов может потребоваться ручная установка defines в 0 в файле include/mgl2/config.h если вы используете предварительно скомпилированные файлы.