Библиотека генетических алгоритмов - часть 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 для чисел с плавающей точкой – некоторые части библиотеки, такие как генератор случайных чисел, предполагает, что архитектура целевого процессора поддерживает данный стандарт.