Установка библиотеки возможна 4-мя способами.
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
).
Последнюю версию (которая может быть не стабильна) можно загрузить с 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
если вы используете предварительно скомпилированные файлы.