Начиная с версии 1.2.1 библиотека может быть использована для разработки программ под операционные системы, поддерживающие язык программирования Objective C и платформу GNUstep. В данном разделе документации мы приводим руководство по установке и использованию библиотеки совместно с платформой GNUstep. Раздел завершается краткими инструкциями по установке платформы GNUstep на различные операционные системы.
Список поддерживаемых платформ
На сегодняшний день библиотека поддерживает следующие операционные системы:
Требования к операционной системе
Библиотека может быть собрана и использована в операционных системах, которые поддерживают:
Также Вам могут понадобиться следующие программы:
- subversion для загрузки и обновления исходного кода библиотеки
- sudo для установки скомпилированной библиотеки
В зависимости от операционной системы и версии платформы GNUstep может потребоваться установка или сборка дополнительного программного обеспечения.
Также в системе должны быть заданы переменные среды окружения GNUSTEP_HEADERS_PATH, SCL_HEADERS_PATH и SCL_LIBRARY_PATH в соответствии с руководством по установке GNUstep для Вашей операционной системы.
Получение исходых текстов библиотеки
Загрузить исходные тексты библиотеки можно двумя способами:
Во втором случае Вы можете загрузить либо текущую версию библиотеки, либо последнюю стабильную версию библиотеки с помощью одной из следующих команд:
svn checkout https:
svn checkout https:
Сборка и установка библиотеки
После загрузки перейдите в каталог с исходным кодом библиотеки и выполните команду:
Если в ходе компиляции появятся сообщения об ошибках или предупреждениях, это может означать следующее:
- не установлена или не настроена платформа GNUstep или необходимые компоненты - обратитесь к разделу установки платформы GNUstep
- компиляция выполняется на непротестированной нами платформе - в этом случае мы рекомендуем Вам отправить данные сообщения, а также вывод команды uname -a на наш адрес samon.nosp@m.d@ma.nosp@m.c.com.
После завершения компиляции выполните установку библиотеки с помощью команды:
Проверка совместимости данных
В состав библиотеки входит утилита тестирования libtest, которая выполняет проверку совместимости нашего кода с используемыми архитектурой и операционной системой. Данная утилита находится в каталоге tests/libtest. В связи с тем, что в промежуточных версиях данная утилита может отличаться от релизной версии, приводим исходный текст основного модуля:
#import <Foundation/Foundation.h>
#import "SCTestCases.h"
#import "SCTestDelegate.h"
#import "SCTestClass.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
@try {
SCTestCases *testCases = [SCTestCases testCases];
[testCases runTestCases];
}
NSLog( @"%@", error.description);
NSLog( @"========================================================================");
NSLog(
@"Error Code: %d", error.
code);
NSLog(
@"Error ID: %@", error.
eid);
NSLog( @"========================================================================");
}
@catch (NSException *error) {
NSLog( @"%@", error.description);
NSLog( @"========================================================================");
NSLog( @"Error name: %@", error.name);
NSLog( @"Error reason: %@", error.reason);
NSLog( @"User info: %@", error.userInfo);
}
[pool drain];
return 0;
}
Для сборки и запуска утилиты выполните следующие команды:
cd tests/libtest
gmake
obj/libtest
Утилита выполняет последовательность тестов, результатом каждого из которых является OK или FAILED. Архитектура и операционная система считаются совместимыми с библиотекой, если результатами всех тестов является значение OK. Если какой-либо тест возвращает значение FAILED, мы рекомендуем данный результат отправить нам по адресу samon.nosp@m.d@ma.nosp@m.c.com.
Посмотреть результаты тестирования библиотеки с различными системами и архитектурами Вы можете по следующим ссылкам:
Использование библиотеки
Для использования библиотеки Вам необходимо выполнить следующие действия:
- добавить включение заголовочного файла библиотеки в Ваш исходный код:
- в сборочный файл GNUmakefile включить следующие строки
include $(SCL_HEADERS_PATH)/scl.make
ADDITIONAL_OBJC_LIBS += -lscl
- если Вы разрабатываете графическое приложение, то список используемых библиотек должен выглядеть следующим образом:
ADDITIONAL_OBJC_LIBS += -lscl -lscl-gui -lgnustep-gui
Внимание! Если Вы используете другие библиотеки, не забудьте включить их в директиву ADDITIONAL_OBJC_LIBS.
Приводим пример GNUmakefile для простой программы, состоящей из нескольких исходных файлов:
include $(GNUSTEP_MAKEFILES)/common.make
include $(SCL_HEADERS_PATH)/scl.make
TOOL_NAME = libtest
libtest_OBJCFLAGS += -Wno-objc-protocol-method-implementation
libtest_HEADERS = SCTestCases.h SCTestDelegate.h SCTestClass.h
libtest_OBJC_FILES = SCTestCases.m SCTestDelegate.m SCTestClass.m libtest.m
libtest_RESOURCE_FILES =
ADDITIONAL_OBJC_LIBS += -lscl
include $(GNUSTEP_MAKEFILES)/tool.make
Установка платформы GNUstep
В данном разделе мы приводим краткое руководство по установке и настроке платформы GNUstep и других необходимых компонентов под протестированные нами операционные системы. Полное руководство по установке платформы Вы можете найти на официальном сайте разработчика. Подробные инструкции по установке других компонентов Вы можете найти в руководстве по операционной системе или в документации на данные компоненты.
FreeBSD
Для установки платформы GNUstep и дополнительного программного обеспечения в операционной системе FreeBSD мы рекомендуем использовать встроенную систему управления пакетами, поскольку сборка из портов или исходников занимает очень много времени. Чтобы установить минимально необходимое программное обеспечение, выполните следующие команды:
pkg install gnustep
pkg install gmake
pkg install subversion
После завершения установки необходимо выполнить настройку GNUstep:
- для пользователей оболочек sh, bash или ksh добавить в файл /etc/profile или ~/.profile строки:
. /usr/local/GNUstep/System/Makefiles/GNUstep.sh
export GNUSTEP_HEADERS_PATH=$GNUSTEP_SYSTEM_ROOT/Library/Headers
export SCL_HEADERS_PATH=$GNUSTEP_LOCAL_ROOT/Library/Headers/scl
export SCL_LIBRARY_PATH=$GNUSTEP_LOCAL_ROOT/Library/Libraries
- для пользователей оболочки csh в файл /etc/csh.login или ~/.login должны быть добавлены строки:
source /usr/local/GNUstep/System/Makefiles/GNUstep.csh
setenv GNUSTEP_HEADERS_PATH $GNUSTEP_SYSTEM_ROOT/Library/Headers
setenv SCL_HEADERS_PATH $GNUSTEP_LOCAL_ROOT/Library/Headers/scl
setenv SCL_LIBRARY_PATH $GNUSTEP_LOCAL_ROOT/Library/Libraries
DragonFly BSD
Для установки GNUstep в операционной системе DragonFly BSD необходимо выполнить следующие команды:
pkg install clang38
pkg install gnustep
pkg install gmake
pkg install subversion
После завершения установки необходимо выполнить настройку GNUstep:
- для пользователей оболочек sh, bash или ksh добавить в файл /etc/profile или ~/.profile строки:
. /usr/local/GNUstep/System/Makefiles/GNUstep.sh
export GNUSTEP_HEADERS_PATH=$GNUSTEP_SYSTEM_ROOT/Library/Headers
export SCL_HEADERS_PATH=$GNUSTEP_LOCAL_ROOT/Library/Headers/scl
export SCL_LIBRARY_PATH=$GNUSTEP_LOCAL_ROOT/Library/Libraries
- для пользователей оболочки csh в файл /etc/csh.login или ~/.login должны быть добавлены строки:
source /usr/local/GNUstep/System/Makefiles/GNUstep.csh
setenv GNUSTEP_HEADERS_PATH $GNUSTEP_SYSTEM_ROOT/Library/Headers
setenv SCL_HEADERS_PATH $GNUSTEP_LOCAL_ROOT/Library/Headers/scl
setenv SCL_LIBRARY_PATH $GNUSTEP_LOCAL_ROOT/Library/Libraries
PCBSD/TrueOS
Операционная система TrueOS (ранее называвшаяся PCBSD) может быть установлена в двух вариантах:
- с графическим интерфейсом
- серверная установка
Для установки GNUstep в системе с графическим интерфейсом необходимо выполнить следующий набор команд:
pkg install gnustep
pkg install gmake
Установка в серверном варианте системы требует исполнения следующих команд:
pkg install subversion
pkg install gnustep
pkg install gmake
После завершения установки необходимо выполнить настройку GNUstep:
- для пользователей оболочек sh, bash или ksh добавить в файл /etc/profile или ~/.profile строки:
. /usr/local/GNUstep/System/Makefiles/GNUstep.sh
export GNUSTEP_HEADERS_PATH=$GNUSTEP_SYSTEM_ROOT/Library/Headers
export SCL_HEADERS_PATH=$GNUSTEP_LOCAL_ROOT/Library/Headers/scl
export SCL_LIBRARY_PATH=$GNUSTEP_LOCAL_ROOT/Library/Libraries
- для пользователей оболочки csh в файл /etc/csh.login или ~/.login должны быть добавлены строки:
source /usr/local/GNUstep/System/Makefiles/GNUstep.csh
setenv GNUSTEP_HEADERS_PATH $GNUSTEP_SYSTEM_ROOT/Library/Headers
setenv SCL_HEADERS_PATH $GNUSTEP_LOCAL_ROOT/Library/Headers/scl
setenv SCL_LIBRARY_PATH $GNUSTEP_LOCAL_ROOT/Library/Libraries
OpenBSD
Перед установкой платформы GNUstep в операционной системе OpenBSD необходимо настроить переменную среды окружения PKG_PATH для задания доступа к репозиторию пакетов:
- если Вы используете оболочку sh, bash или ksh, выполните команду:
- пользователям оболочки csh нужно выполнить следующую команду:
В данных примерах необходимо указывать следующие данные вместо параметров X.X и YYYY:
X.X - номер версии OpenBSD, например 6.1
YYYY - идентификатор архитектуры системы, например i386 или amd64
Установка платформы осуществляется через выполнение следующих команд:
pkg_add subversion
pkg_add gmake
pkg_add gnustep-make
pkg_add gnustep-base
pkg_add gnustep-gui
pkg_add gnustep-back
pkg_add llvm
mkdir -p /usr/local/Local/Library
ln -s /usr/local/include /usr/local/Local/Library/Headers
ln -s /usr/local/lib /usr/local/Local/Library/Libraries
После завершения установки необходимо выполнить настройку GNUstep:
- для пользователей оболочек sh, bash или ksh добавить в файл /etc/profile или ~/.profile строки:
. /usr/local/share/GNUstep/Makefiles/GNUstep.sh
export GNUSTEP_HEADERS_PATH=/usr/local/include
export SCL_HEADERS_PATH=/usr/local/include/scl
export SCL_LIBRARY_PATH=/usr/local/lib
- для пользователей оболочки csh в файл /etc/csh.login или ~/.login должны быть добавлены строки:
source /usr/local/share/GNUstep/Makefiles/GNUstep.csh
setenv GNUSTEP_HEADERS_PATH /usr/local/include
setenv SCL_HEADERS_PATH /usr/local/include/scl
setenv SCL_LIBRARY_PATH /usr/local/lib
NetBSD
Первоначально в операционной системе NetBSD мы планировали использовать GNUstep из пакетов в составе системы, однако в ходе тестирования выяснилось, что данная версия платформы сильно урезана - в ее состав не входит Objective C 2.0, поэтому не работает ряд необходимых функций. В связи с этим установку самой платформы необходимо производить из ее исходных текстов.
Перед установкой необходимо настроить переменную среды окружения PKG_PATH для задания доступа к репозиторию пакетов:
- при использовании оболочки sh, bash или ksh:
- в случае применения оболочки csh:
Параметры из вышеприведенных примеров определяют следующие настройки:
XXXX - идентификатор архитектуры системы, например i386 или amd64
Y.Y - номер версии NetBSD, например 7.1
Перед установкой платформы устанавливаем минимально необходимые пакеты:
pkg_add gmake
pkg_add subversion
pkg_add fetch
pkg_add libiconv
pkg_add libxslt
pkg_add gnutls
pkg_add icu
pkg_add jpeg
pkg_add tiff
pkg_add clang
Для установки самой платформы необходимо настроить переменные среды окружения CC и LD_LIBRARY_PATH:
- при использовании оболочек sh, bash или ksh в файлы /etc/profile или ~/.profile необходимо добавить следующие строки:
export CC=/usr/pkg/bin/clang
export LD_LIBRARY_PATH=/usr/local/lib
- пользователям оболочки csh нужно в файл /etc/csh.login или ~/.login добавить данные строки:
setenv CC /usr/pkg/bin/clang
setenv LD_LIBRARY_PATH /usr/local/lib
Внимание! Если Вам необходимо указать несколько путей в переменной LD_LIBRARY_PATH, путь /usr/local/lib должен быть указан первым, в противном случае могут возникнуть проблемы с линковкой исполняемых файлов.
Из исходных текстов должны быть собраны следующие компоненты платформы GNUstep:
gnustep-make
libobjc2
gnustep-base
gnustep-gui
gnustep-back
Внимание! После сборки и установки библиотеки libobjc2 необходимо еще раз сконфигурировать и установить пакет gnustep-make.
Приводим пример загрузки и сборки данных компонентов:
fetch ftp:
tar -xvzf gnustep-make-2.7.0.tar.gz
cd gnustep-make-2.7.0
./configure
gmake install
cd ..
fetch https:
tar -xvzf v1.8.1.tar.gz
cd libobjc2-1.8.1
gmake
gmake install
cd gnustep-make-2.7.0
./configure
gmake install
cd ..
fetch ftp:
tar -xvzf gnustep-base-1.25.0.tar.gz
cd gnustep-base-1.25.0
./configure
gmake
gmake install
cd ..
fetch ftp:
tar -xvzf gnustep-gui-0.25.1.tar.gz
cd gnustep-gui-0.25.1
./configure
gmake
gmake install
cd ..
fetch ftp:
tar -xvzf gnustep-back-0.25.1.tar.gz
cd gnustep-back-0.25.1
./configure
gmake
gmake install
cd ..
После завершения установки необходимо выполнить настройку GNUstep:
- для пользователей оболочек sh, bash или ksh добавить в файл /etc/profile или ~/.profile строку:
. /usr/local/share/GNUstep/Makefiles/GNUstep.sh
export LD_LIBRARY_PATH=/usr/local/lib
export CC=/usr/pkg/bin/clang
export GNUSTEP_HEADERS_PATH=/usr/local/include
export SCL_HEADERS_PATH=/usr/local/include/scl
export SCL_LIBRARY_PATH=/usr/local/lib
- для пользователей оболочки csh в файл /etc/csh.login или ~/.login должна быть добавлена строка:
source /usr/local/share/GNUstep/Makefiles/GNUstep.csh
setenv LD_LIBRARY_PATH /usr/local/lib
setenv CC=/usr/pkg/bin/clang
setenv GNUSTEP_HEADERS_PATH /usr/local/include
setenv SCL_HEADERS_PATH /usr/local/include/scl
setenv SCL_LIBRARY_PATH /usr/local/lib
Debian Linux
Для установки GNUstep в операционной системе Debian Linux загрузите и запустите один из следующих скриптов:
Скрипт загрузит и установит все необходимые пакеты.
После завершения установки необходимо выполнить настройку GNUstep:
- для пользователей оболочек sh, bash или ksh добавить в файл /etc/profile или ~/.profile строки:
export CC=clang
export CXX=clang++
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
export GNUSTEP_HEADERS_PATH=/usr/GNUstep/Local/Library/Headers
export SCL_HEADERS_PATH=/usr/GNUstep/Local/Library/Headers/scl
export SCL_LIBRARY_PATH=/usr/GNUstep/Local/Library/Libraries
- для пользователей оболочки csh в файл /etc/csh.login или ~/.login должны быть добавлены строки:
setenv CC clang
setenv CXX clang++
setenv LD_LIBRARY_PATH /usr/local/lib:/usr/lib
source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
setenv GNUSTEP_HEADERS_PATH /usr/GNUstep/Local/Library/Headers
setenv SCL_HEADERS_PATH /usr/GNUstep/Local/Library/Headers/scl
setenv SCL_LIBRARY_PATH /usr/GNUstep/Local/Library/Libraries
Fedora Linux
Для установки GNUstep в операционной системе Fedora Linux загрузите и запустите один из следующих скриптов:
Скрипт загрузит и установит все необходимые пакеты.
После завершения установки необходимо выполнить настройку GNUstep:
- для пользователей оболочек sh, bash или ksh добавить в файл /etc/profile или ~/.profile строки:
export CC=clang
export CXX=clang++
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
export GNUSTEP_HEADERS_PATH=/usr/GNUstep/Local/Library/Headers
export SCL_HEADERS_PATH=/usr/GNUstep/Local/Library/Headers/scl
export SCL_LIBRARY_PATH=/usr/GNUstep/Local/Library/Libraries
- для пользователей оболочки csh в файл /etc/csh.login или ~/.login должны быть добавлены строки:
setenv CC clang
setenv CXX clang++
setenv LD_LIBRARY_PATH /usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
setenv GNUSTEP_HEADERS_PATH /usr/GNUstep/Local/Library/Headers
setenv SCL_HEADERS_PATH /usr/GNUstep/Local/Library/Headers/scl
setenv SCL_LIBRARY_PATH /usr/GNUstep/Local/Library/Libraries
Arch Linux
Для установки GNUstep в операционной системе Arch Linux загрузите и запустите скрипт:
Скрипт загрузит и установит все необходимые пакеты.
После завершения установки необходимо выполнить настройку GNUstep:
- для пользователей оболочек sh, bash или ksh добавить в файл /etc/profile или ~/.profile строки:
export CC=clang
export CXX=clang++
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
export GNUSTEP_HEADERS_PATH=/usr/GNUstep/Local/Library/Headers
export SCL_HEADERS_PATH=/usr/GNUstep/Local/Library/Headers/scl
export SCL_LIBRARY_PATH=/usr/GNUstep/Local/Library/Libraries
- для пользователей оболочки csh в файл /etc/csh.login или ~/.login должны быть добавлены строки:
setenv CC clang
setenv CXX clang++
setenv LD_LIBRARY_PATH /usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
setenv GNUSTEP_HEADERS_PATH /usr/GNUstep/Local/Library/Headers
setenv SCL_HEADERS_PATH /usr/GNUstep/Local/Library/Headers/scl
setenv SCL_LIBRARY_PATH /usr/GNUstep/Local/Library/Libraries
Red Hat Enterprise Server
Для установки GNUstep в операционной системе Red Hat Enterprise Server загрузите и запустите скрипт:
Скрипт загрузит и установит все необходимые пакеты.
После завершения установки необходимо выполнить настройку GNUstep:
- для пользователей оболочек sh, bash или ksh добавить в файл /etc/profile или ~/.profile строки:
export CC=clang
export CXX=clang++
export LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
export GNUSTEP_HEADERS_PATH=/usr/GNUstep/Local/Library/Headers
export SCL_HEADERS_PATH=/usr/GNUstep/Local/Library/Headers/scl
export SCL_LIBRARY_PATH=/usr/GNUstep/Local/Library/Libraries
- для пользователей оболочки csh в файл /etc/csh.login или ~/.login должны быть добавлены строки:
setenv CC clang
setenv CXX clang++
setenv LIBRARY_PATH /usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
setenv LD_LIBRARY_PATH /usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
setenv GNUSTEP_HEADERS_PATH /usr/GNUstep/Local/Library/Headers
setenv SCL_HEADERS_PATH /usr/GNUstep/Local/Library/Headers/scl
setenv SCL_LIBRARY_PATH /usr/GNUstep/Local/Library/Libraries
Oracle Linux
Для установки GNUstep в операционной системе Oracle Linux загрузите и запустите один из скриптов:
Скрипт загрузит и установит все необходимые пакеты.
После завершения установки необходимо выполнить настройку GNUstep:
- для пользователей оболочек sh, bash или ksh добавить в файл /etc/profile или ~/.profile строки:
export CC=clang
export CXX=clang++
export LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
export GNUSTEP_HEADERS_PATH=/usr/GNUstep/Local/Library/Headers
export SCL_HEADERS_PATH=/usr/GNUstep/Local/Library/Headers/scl
export SCL_LIBRARY_PATH=/usr/GNUstep/Local/Library/Libraries
- для пользователей оболочки csh в файл /etc/csh.login или ~/.login должны быть добавлены строки:
setenv CC clang
setenv CXX clang++
setenv LIBRARY_PATH /usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
setenv LD_LIBRARY_PATH /usr/local/lib:/usr/lib:/usr/local/lib64:/usr/lib64
source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
setenv GNUSTEP_HEADERS_PATH /usr/GNUstep/Local/Library/Headers
setenv SCL_HEADERS_PATH /usr/GNUstep/Local/Library/Headers/scl
setenv SCL_LIBRARY_PATH /usr/GNUstep/Local/Library/Libraries
Ubuntu Linux
Для установки GNUstep в операционной системе Ubuntu версии 17.04 загрузите и запустите один из следующих скриптов:
Скрипт загрузит и установит все необходимые пакеты.
После завершения установки необходимо выполнить настройку GNUstep:
- для пользователей оболочек sh, bash или ksh добавить в файл /etc/profile или ~/.profile строки:
export CC=clang
export CXX=clang++
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib
. /usr/GNUstep/System/Library/Makefiles/GNUstep.sh
export GNUSTEP_HEADERS_PATH=/usr/GNUstep/Local/Library/Headers
export SCL_HEADERS_PATH=/usr/GNUstep/Local/Library/Headers/scl
export SCL_LIBRARY_PATH=/usr/GNUstep/Local/Library/Libraries
- для пользователей оболочки csh в файл /etc/csh.login или ~/.login должны быть добавлены строки:
setenv CC clang
setenv CXX clang++
setenv LD_LIBRARY_PATH /usr/local/lib:/usr/lib
source /usr/GNUstep/System/Library/Makefiles/GNUstep.csh
setenv GNUSTEP_HEADERS_PATH /usr/GNUstep/Local/Library/Headers
setenv SCL_HEADERS_PATH /usr/GNUstep/Local/Library/Headers/scl
setenv SCL_LIBRARY_PATH /usr/GNUstep/Local/Library/Libraries