5/28/2009
Вышел Gnat GPL 2009
Скачать можно на оффициальном сайте.
Компилятор полностью поддерживает стандарт Ады 2005.
И в скором времени только им можно будет скомпилировать QtAda.
UPD: С новым компилятором не нужно выполнять никаких сложных действий для того чтобы установить QtAda. Только после установки QtAda нужно лишь указать компилятору как использовать Amoc. И все.
Ну и естественно прописать все необходимые пути.
5/21/2009
Установка и настройка QtAda
В этой статье, я хочу вам рассказать как скачать и установить библиотеку Qtada.
Qtada - это библиотека, которая позволяет создавать графический интерфейс пользователя на языке Ада, с использованием возможностей библиотеки Qt.
Для того чтобы установить QtAda понадобится установить и настроить :
- Компилятор языка Ада (gnat)
- Библиотеку для семантического анализа программ на Аде (asis)
- Библиотеку Qt, версии не ниже 4.5.0
- Библиотеку QtAda версии 3.x
1. Компилятор:
QtAda написана с использованием языка Ада стандарта 2005 года. Компилятор Gnat от компании AdaCore наиболее полно поддерживает стандарт Ады 2005, и позволяет без проблем скомпилировать библиотеку. Для установки QtAda нужно использовать Gnat GPL 2008 - самую последнюю версию на данный момент, доступную для некоммерческого использования. Скачать компилятор можно с официального сайта www.adacore.com или же с одного из зеркал. Размер компилятора около 90 мегабайт.
Я качал Gnat с зеркала на сайте ftp.mipt.ru :
cd /tmp/ && wget -c ftp://ftp.mipt.ru/ada/gnat-gpl-2008/x86_64-linux/gnat-gpl-2008-x86_64-pc-linux-gnu-bin.tar.gz
Распаковываем во временную папку:
cd /tmp/ && tar xfv gnat-gpl-2008-x86_64-pc-linux-gnu-bin.tar.gz
Перемещаем распакованную папку в /opt/gnat/:
mv /tmp/gnat-2008-x86_64-pc-linux-gnu-bin /opt/gnat
Пол-дела сделано.
Теперь, чтобы воспользоваться компилятором, нужно прописать в переменных окружения пути к исполняемым файлам и библиотекам. Для этого проще всего создать в домашнем каталоге файл ~/.ada_rc примерно следующего содержания:
export PATH=/opt/gnat/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib64/gcc/x86_64-pc-linux-gnu/4.2.4/:/opt/gnat/lib/gcc/x86_64-pc-linux-gnu/4.1.3/adalib/:$LD_LIBRARY_PATH
Далее по необходимости, можно каждый раз набирать в консоли source ~./ada_rc или же прописать эту строчку в файле ~/.bashrc
Пути к компилятору обязательно должны быть первыми в обоих переменных окружения. Это нужно по следующей причине: скорее всего ваш системный GCC не скомпилирован с поддержкой языка программирования Ада, и поэтому он не сможет запустить компилятор gnat. По этой причине, вместе с gnat'ом поставляется своя версия gcc, которая умеет делать все что нужно.
Следующий шаг выполнять НЕ НУЖНО, если версия вашего системного gcc старше или такая же как и версия gcc,предоставляемого gnat'ом (в данном случае 4.1.2)
Если же у вас в системе компилятор новее, то gcc, который входит в состав gnat, может
работать некорректно, из за конфликтов своих библиотек с системными, а конкретно библиотеки, libgcc_s.so.1
Нужно удалить библиотеку поставляемую вместе с gnat:
rm -i `find /opt/gnat/ -name libgcc_s.so.1`
и сделать символическую ссылку на системную:
ln -s /usr/lib64/gcc/x86_64-pc-linux-gnu/4.3.3/libgcc_s.so.1 /opt/gnat/lib64/
Теперь можно со спокойной душой набрать в консоли
gnatls -v
и убедиться что компилятор работает.
Вывод должен быть примерно следующим:
GNATLS GPL 2008 (20080521)
Copyright (C) 1997-2008, Free Software Foundation, Inc.
Source Search Path:
/usr/lib64/gnat-gpl/x86_64-pc-linux-gnu/4.1-2008/adainclude/
/opt/gnat/lib/gcc/x86_64-pc-linux-gnu/4.1.3/adainclude/
Object Search Path:
/usr/lib64/gnat-gpl/x86_64-pc-linux-gnu/4.1-2008/adalib/
/opt/gnat/lib/gcc/x86_64-pc-linux-gnu/4.1.3/adalib/
Project Search Path:
/opt/gnat/lib/gnat/
2. Установка ASIS
ASIS - это Спецификация Семантического Интерфейса к языку Ада (Ada Semantic Interface Specification, ASIS). Он необходим для корректной работы компилятора мета информации, поставляемого с QtAda'ой.
Скачать ASIS можно там же где и компилятор:
cd /tmp && wget -c ftp://ftp.mipt.ru/ada/gnat-gpl-2008/x86_64-linux/tools/asis/asis-gpl-2008-src.tgz
Затем его надо распаковать:
tar xfv asis-gpl-2008-src.tgz
Перейти в каталог с исходниками:
cd asis-2008-src
Скомпилировать:
make INSTALL_DIR=/opt/gnat
Установить:
make INSTALL_DIR=/opt/gnat install
Теперь нужно убедиться, что ASIS установлен корректно, и QtAda при компиляции обнаружит проектный файла библиотеки ASIS. Для этого проверьте, есть ли файл asis.gpr в дирректории /opt/gnat/lib/gnat/
Если есть, то все хорошо, и можно продолжать дальше. Если нет, то что-то не так.
3. Установка Qt.
Qt - это кросс платформенная библиотека для создания графического интерфейса пользователя.
Скачать можно с сайта www.trolltech.com.
Процесс установки Qt я здесь описывать не буду.
Замечу лишь, что при конфигурации Qt убедитесь, что библиотека сконфигурирована БЕЗ флага -no-accessebility
4. Установка QtAda
Если ваш системный компилятор новее, чем тот, что идет в составе Gnat, то перед установкой QtAda нужно чуть чуть сконфигурировать компилятор, дабы корректно откомпилировать ту часть проекта, которая написана на C++.
Сначала узнаем версию системного компилятора:
/usr/bin/gcc -v
Из полученного вывода нужна самая последняя строка. В моем случае она выглядит так:
gcc версия 4.3.3 (Gentoo 4.3.3-r2 p1.1, pie-10.1.5)
Из этой строки нам понадобится только Gentoo 4.3.3-r2.
Открываем в вашем любимом текстовом редакторе файл compilers.xml :
emacs /opt/gnat/share/gprconfig/compilers.xml
Находим там блок, который начинается с комментария <!-- GCC 3.x & 4.x -->
и заменяем в строке <grep regexp="\(GCC\) (\S+)" group="1">
выражение \(GCC\) на (Gentoo\ 4.3.3-r2)
Далее ищем блок, который начинается с комментария <!-- G++ compilers --> и проделываем те же самые манипуляции.
Для окончательной конфигурации компилятора нужно выполнить:
gprconfig
В результате чего в консоли появится вот такой список:
--------------------------------------------------
gprconfig has found the following compilers on your PATH.
Only those matching the target and the selected compilers are displayed.
(A) GNAT for Ada in /opt/gnat/bin/ version 2008 (default runtime)
(B) GNAT for Ada in /opt/gnat/bin/ version 2008 (native runtime)
(C) GNAT for Ada in /opt/gnat/bin/ version 2008 (sjlj runtime)
(D) GCC-ASM for Asm in /opt/gnat/bin/ version 4.1.3
(E) GCC-ASM for Asm2 in /opt/gnat/bin/ version 4.1.3
(F) GCC-ASM for Asm_Cpp in /opt/gnat/bin/ version 4.1.3
(G) GCC for C in /usr/bin/ version Gentoo 4.3.3-r2
(H) G++ for C++ in /usr/bin/ version Gentoo 4.3.3-r2
Select or unselect the following compiler (or "s" to save):
Нажимаем A, <enter>, D, <enter>, E <enter>, F <enter>, G <enter>, H <enter>
Возле каждого выбранного пункта должна появиться *.
Жмем s и сохраняем настройки.
Теперь все готово для компиляции QtAda.
Хочу отметить, что все вышеперечисленные действия нужно выполнять, если у ваш системный компилятор новее того, что поставляется вместе с gnat.
Качаем QtAda с официального сайта:
cd /tmp && wget -c http://download.qtada.com/qtada-gpl-3.0.0-20090423-3303.tar.gz
распаковываем архив:
cd /tmp && tar xfv qtada-gpl-3.0.0-20090423-3303.tar.gz
заходим в директорию с исходниками:
cd qtada-gpl-3.0.0-20090423-3303
Конфигурируем && компилируем && устанавливаем:
./configure -prefix=/opt/qtada && make && make install
После установки нужно обновить переменные окружения PATH и LD_LIBRARY_PATH:
export PATH=/opt/qtada/bin:$PATH
export LD_LIBRARY_PATH=/opt/qtada/lib:$LD_LIBRARY_PATH
Затем нужно указать компилятору где искать файл проекта QtAda.
Для этого нужно установить переменную окружения ADA_PROJECT_PATH:
export ADA_PROJECT_PATH=/opt/qtada/lib/gnat/
Все установки переменных окружения неплохо прописать в файл ~/.ada_rc
Еще необходимо сказать компилятору о том как, использовать amoc. Для этого создадим символическую ссылку:
ln -s /opt/qtada/share/gprconfig/amoc.xml /opt/gnat/share/gprconfig/
и обновим настройки компилятора:
gprconfig
Опять выбираем все нужные компиляторы, включая вновь появившийся Amoc.
Сохраняем.
Теперь QtAda установлена и готова для использования.
5/17/2009
Как Вставить много одинаковых символов в Emacs'е
Например :
Ctrl + 1 + 0
Затем если нажать на '+',
то начиная от текущей позиции курсора появится 10 символов '+'