Библиотека генетических алгоритмов - часть 4 - Платформы Windows, Linux, Mac OS X, Solaris и *BSD

ОГЛАВЛЕНИЕ

Платформа Windows

Библиотека генетических алгоритмов доступна в двух версиях проектов Visual Studio 2005. Первый настроен на использование компилятора Microsoft C/C++, а второй использует компилятор Intel C++. Проекты расположены в каталоге /vs.

Чтобы добавить функционал библиотеки генетических алгоритмов в приложение, библиотеку надо подключить к нему. В Visual Studio 2005 это делается двумя способами:

•    Способ 1
Добавление проекта библиотеки генетических алгоритмов в решение приложения и установка ссылки на проект библиотеки генетических алгоритмов.

•    Способ 2
1.    Добавление GeneticAlgorithm.lib в Свойства проекта->Линкер->Дополнительные зависимости.
2.    Установка правильных каталогов, чтобы Visual Studio могла найти библиотеку и ее заголовки. Это можно сделать локально или глобально.
     a.    Локально
         I.    Добавление GeneticLibrary.lib в:

         Свойства проекта->Линкер->Общие->Каталоги дополнительных библиотек
         Project Properties->Linker->General->Additional Library Directories

         II.    Добавление каталога исходного кода библиотеки генетических алгоритмов (/source) в поиски препроцессора:

         Свойства проекта->C/C++->Общие ->Дополнительные каталоги включения
         Project Properties->C/C++->General->Additional Include Directories

     b.    Глобально путем добавления каталогов в соответствующие места (включаемые файлы и файлы библиотеки)

         Инструменты->Опции->Проекты и решения->Каталоги VC++
         Tools->Options->Projects and Solutions->VC++ Directories

Процедуры одинаковы для обеих версий проекта.

Библиотеку можно скомпилировать как статическую или динамическую [DLL] библиотеку. По умолчанию она компилируется как DLL; если она компилируется и используется как статическая библиотека, GENETICLIBRARY_STATIC должен быть определен.

Выходными файлами являются GeneticLibrary.dll и GeneticLibrary.lib, если библиотека компилируется как DLL, или только GeneticLibrary.lib, если она компилируется как статическая библиотека. Эти файлы расположены в каталоге /build/%configuration%/%compiler%, где %configuration% является debug(отладка) or release(выпуск), и %compiler% является msvc для компилятора Microsoft C/C++ или icc_win для компилятора Intel C++. Файл GeneticLibrary.dll надо скопировать в тот же каталог, где находится исполняемый файл приложения.

По умолчанию библиотека генетических алгоритмов подключена к динамической версии стандартных библиотек времени выполнения [CRT]. Если библиотека подключена к динамической версии CRT, приложение может не запуститься на машинах, на которых не установлен свободно распространяемый пакет Microsoft Visual C++ 2005. Важно отметить, что приложение, использующее библиотеку генетических алгоритмов, должно быть подключено к такой же версии CRT как библиотека.

Платформы Linux, Mac OS X, Solaris и *BSD

Библиотека компилируется из консоли путем вызова make с соответствующим сборочным файлом. В операционной системе Solaris gmake применяется для компиляции библиотеки с помощью GCC G++, а dmake – для компиляции с помощью Sun Studio C++. В системах *BSD используется сборщик GNU [gmake] вместо сборщика BSD [make].

make -f %compiler%_%platform%_%configuration% all

где %compiler% является:
•    gcc – для компилятора GCC G++.
•    icc - для компилятора Intel C++.
•    scc - для компилятора Sun Studio C++.

%platform%s являются следующими:
•    linux – для семейства операционных систем Linux.
•    macos – для операционной системы Mac OS X.
•    solaris - для операционной системы Solaris.
•    bsd - для семейства операционных систем BSD.

а конфигурация является одной из следующих:
•    debug(отладка) – компилирует библиотеку с отладочной информацией и без оптимизации.
•    release(выпуск) - компилирует библиотеку с генерацией оптимизированного кода и удаляет отладочную информацию.

Сборочные файлы находятся в каталоге /makefiles.

make -f icc_linux_debug all

Пример: компиляция в режиме отладки на Linux с помощью Intel C++

gmake -f gcc_bsd_release all

Пример – компиляция в режиме выпуска на FreeBSD с помощью GCC G++

Выходной файл является статической библиотекой по имени libGeneticLibrary.a и расположен в каталоге /build/%configuration%/%compiler%_%platform%.

Чтобы подключить библиотеку генетических алгоритмов к приложению, пользователь должен задать путь к библиотеке и имя файла библиотеки:

g++ -Wl,-L"%path_to_library%/build/%configuration%/%compiler%_%platform%"
     -lGeneticLibrary -o "application_executable" [список объектных файлов]

Для компилятора Intel C++ пользователь должен использовать команду icpc вместо g++, а для компилятора Sun Studio C++ - команду cc.

%path_to_library% - путь к каталогу, где расположена библиотека. На некоторых платформах есть дополнительные требования для подключения приложения к библиотеке генетических алгоритмов. В Linux в линкере надо задать ключ -lrt. Линкер Sun Studio требует ключей -library=stlport4 и -lrt, а линкер GNU в системе *BSD требует ключей -march=i486 и -lpthread.

Переносимость

Чтобы перенести данную библиотеку на другие платформы без существенных изменений ядра библиотеки, целевая платформа должна поддерживать:
•    Многопоточность – если целевая платформа поддерживает потоки POSIX, перенос упрощается, так как библиотека генетических алгоритмов уже использует Pthreads для многопоточности в UNIX-подобных системах.
•    Элементарные операции инкремента и декремента, а также элементарные команды сравнения и обмена или элементарные операции обмена.
•    STL - библиотека генетических алгоритмов в некоторых частях опирается на STL и некоторые нестандартные расширения STL, такие как hash_map.
•    Стандарт IEEE754 для чисел с плавающей точкой – некоторые части библиотеки, такие как генератор случайных чисел, предполагает, что архитектура целевого процессора поддерживает данный стандарт.