[вернуться к оглавлению]

# LibRaw: компиляция и установка

LibRaw поставляется в исходных текстах, для использования необходимо их скомпилировать (и, при желании, установить в системные каталоги с библиотеками и include-файлами)

## Unix-системы (FreeBSD, Linux, Mac OS X)

Для сборки библиотеки вам нужен работающий компилятор C++ (gcc версий 3.x или 4.x вполне подойдет, сборка другими компиляторами не тестировалась) и программа make. Никаких других библиотек, утилит и т.п. - не требуется.

LibRaw тестировалась на 32-битных и 64-битных Unix-системах на x86- (и AMD64-) совместимых процессорах. Сборка и работоспособность на каких-либо еще архитектурах не тестировалась.

### Компиляция библиотеки и примеров

Распакуйте скачанный дистрибутив, перейдите в получшвшийся каталог и запустите make:

            tar xzvf LibRaw-X.YY.tar.gz
            cd  LibRaw-X.YY
            make

В результате скомпилируются:

- Библиотеку libraw.a в каталоге lib/
- Примеры в каталоге bin/ (исходные тексты примеров находятся в каталоге samples).

В текущей версии собираются только статические библиотеки:

- libraw.a - не thread_safe вариант
- libraw_r.a - thread safe

### Сборка с lcms

Для сборки с поддержкой ICC-профилей необходимо раскомментировать в Makefile две строчки, следующие после строки

    # LCMS support

Предполагается, что библиотека lcms установлена в /usr/local/lib или /usr/lib, а lcms.h - в /usr/local/include или /usr/include. Если на вашей системе это не так, то придется подправить пути в LCMS_DEF и LCMS_LIB в Makefile

### Поддержка OpenMP

Для сборки с автоматическим распараллеливанием ряда ресурсоемких стадий обработки необходимо раскомментировать в Makefile одну строчку, следующую после строки

    # OpenMP support

### Установка и использование

Для установки библиотеки выполните команду

    make install

Она установит библиотеки в /usr/local/lib, а include-файлы в /usr/local/include (в подкаталог libraw).
Для использования LibRaw добавьте следующие параметры к вызову компилятора (при сборке собственных проектов):

- Путь к Include-файлам: -I/usr/local/include
- Путь к библиотекам: -L/usr/local/lib
- Библиотека: -lraw (обычная версия) или -lraw_r (thread-safe версия)

#### Установка примеров

Для установки примеров выполните команду make install-binaries, которая скопирует все скомпилированные примеры в /usr/local/bin

## Windows, сборка под Cygwin

Сборка и установка полностью аналогична сборке и установке на unix-системах.

## Windows, native-сборка

Сборка под Windows делается в три шага:

- Распакуйте дистрибутив (если у вас нет tar+gzip, возьмите дистрибутив LibRaw в формате .ZIP), перейдите в каталог LibRaw-X.YYY
- Нужно установить переменные окружения так, чтобы компилятор/линковщик находил библиотеки и include-файлы. Для Visual C++ это делается запуском vcvars32.bat.
- Запускается
  nmake -f Makefile.msvc

Если все пути установлены правильно и include-файлы/библиотеки нашлись, то скомпилируются:

- Библиотека libraw_static.lib в каталоге lib
- Динамическая библиотека bin/libraw.dll и линковочная библиотека к ней lib/libraw.lib
- Примеры в каталоге bin

Под Win32 собирается только thread-safe библиотека, ее можно использовать и не с multi-threaded-приложениями. Все примеры собираются с динамической библиотекой (DLL), при необходимости использовать статическую сборку, нужно линковаться с библиотекой libraw_static.lib а при компиляции указывать директиву препроцессора /DLIBRAW_NODLL.

Windows-версия в настоящее время собирается без поддержки библиотеки LCMS (ICC-профилей).

При сборке DLL экспортируются все публичные функции, в дальнейшем экспортируемое подмножество может быть уменьшено.

К сожалению, пути к include/библиотекам зависят от способа, которым у вас установлен Visual C (или другой компилятор), поэтому вписать какие-то стандартные пути в Makefile.msvc невозможно.

## Windows, установка

Какая-либо установка под Windows не поддерживается, предполагается что все .DLL будут поставляться вместе с использующей их программой (которая и сделает установку). Соответственно, при сборке программ, использующих LibRaw путь до библиотек, DLL и include-файлов должен задаваться вручную.

[вернуться к оглавлению]

Last modified: Sun Mar 28 22:08:21 MSD 2010