Привет всем! Раз уж выбрался на conversation, то сразу и второй вопрос. Во многих языках программирования (Phyton, PERL, Rust...) есть некие средства для установки модулей (пакетов) подпрограмм. Как это делается в Ada? Конкретно, мне нужна библиотека для работы с SQLite - как установить модуль для работы с SQLite ?
Зачем? SQLite поставляется в исходнике. Все что надо - написать with в файле проекта. См. http://www.dmitry-kazakov.de/ada/components.htm#SQLite http://www.dmitry-kazakov.de/ada/components.htm#SQLite К вопросу о пакетах. Есть gprinstall для ручной установки. Для стандартных библиотек под Linux apt и dnf / yum.
On 11/30/2016 05:02 PM, sv_lary@... [ada_ru] wrote: > > Раз уж выбрался на conversation, то сразу и второй вопрос. Во многих > языках программирования (Phyton, PERL, Rust...) есть некие средства для > установки модулей (пакетов) подпрограмм. Как это делается в Ada? > Конкретно, мне нужна библиотека для работы с SQLite - как установить > модуль для работы с SQLite ? > Стандартных средств для этого нет. А поддержку SQLite можео найти, например, тут http://forge.ada-ru.org/matreshka
Исходники распаковать в любую директорию, которая видна в пути проектов GPR (переменная ADA_PROJECT_PATH). Или использовать полный путь в with Вашего проекта. gprinstall входит в стандартную поставку GNAT. Он на сложных проектах конечно не работает, а так, для дома - ничего. (Все это специфично для SQLitе, который будучи встроенным менеджером файловой базы данных, не имеет смысла использовать иначе чем статически линкуя.)
On 2016-11-30 20:10, Vadim Godunko vgodunko@... [ada_ru] wrote: > > > On 11/30/2016 05:02 PM, sv_lary@... [ada_ru] wrote: >> >> Раз уж выбрался на conversation, то сразу и второй вопрос. Во многих >> языках программирования (Phyton, PERL, Rust...) есть некие средства для >> установки модулей (пакетов) подпрограмм. Как это делается в Ada? >> Конкретно, мне нужна библиотека для работы с SQLite - как установить >> модуль для работы с SQLite ? >> > Стандартных средств для этого нет. А поддержку SQLite можео найти, > например, тут http://forge.ada-ru.org/matreshka Или GNATCOLL.SQL
Qt5Ada supports any database connections From: "Dmitriy Anisimkov anisimkov@... [ada ru]" <ada [email protected]> To: ada [email protected] Sent: Thursday, December 1, 2016 6:21 AM Subject: Re: [ada ru] Менеджер пакетов Ada On 2016-11-30 20:10, Vadim Godunko vgodunko@... [ada ru] wrote: > > > On 11/30/2016 05:02 PM, sv [email protected] [ada ru] wrote: >> >> Раз уж выбрался на conversation, то сразу и второй вопрос. Во многих >> языках программирования (Phyton, PERL, Rust...) есть некие средства для >> установки модулей (пакетов) подпрограмм. Как это делается в Ada? >> Конкретно, мне нужна библиотека для работы с SQLite - как установить >> модуль для работы с SQLite ? >> > Стандартных средств для этого нет. А поддержку SQLite можео найти, > например, тут http://forge.ada-ru.org/matreshka Или GNATCOLL.SQL #yiv9801650905 #yiv9801650905 -- #yiv9801650905ygrp-mkp {border:1px solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv9801650905 #yiv9801650905ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv9801650905 #yiv9801650905ygrp-mkp #yiv9801650905hd {color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 0;}#yiv9801650905 #yiv9801650905ygrp-mkp #yiv9801650905ads {margin-bottom:10px;}#yiv9801650905 #yiv9801650905ygrp-mkp .yiv9801650905ad {padding:0 0;}#yiv9801650905 #yiv9801650905ygrp-mkp .yiv9801650905ad p {margin:0;}#yiv9801650905 #yiv9801650905ygrp-mkp .yiv9801650905ad a {color:#0000ff;text-decoration:none;}#yiv9801650905 #yiv9801650905ygrp-sponsor #yiv9801650905ygrp-lc {font-family:Arial;}#yiv9801650905 #yiv9801650905ygrp-sponsor #yiv9801650905ygrp-lc #yiv9801650905hd {margin:10px 0px;font-weight:700;font-size:78%;line-height:122%;}#yiv9801650905 #yiv9801650905ygrp-sponsor #yiv9801650905ygrp-lc .yiv9801650905ad {margin-bottom:10px;padding:0 0;}#yiv9801650905 #yiv9801650905actions {font-family:Verdana;font-size:11px;padding:10px 0;}#yiv9801650905 #yiv9801650905activity {background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv9801650905 #yiv9801650905activity span {font-weight:700;}#yiv9801650905 #yiv9801650905activity span:first-child {text-transform:uppercase;}#yiv9801650905 #yiv9801650905activity span a {color:#5085b6;text-decoration:none;}#yiv9801650905 #yiv9801650905activity span span {color:#ff7900;}#yiv9801650905 #yiv9801650905activity span .yiv9801650905underline {text-decoration:underline;}#yiv9801650905 .yiv9801650905attach {clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 0;width:400px;}#yiv9801650905 .yiv9801650905attach div a {text-decoration:none;}#yiv9801650905 .yiv9801650905attach img {border:none;padding-right:5px;}#yiv9801650905 .yiv9801650905attach label {display:block;margin-bottom:5px;}#yiv9801650905 .yiv9801650905attach label a {text-decoration:none;}#yiv9801650905 blockquote {margin:0 0 0 4px;}#yiv9801650905 .yiv9801650905bold {font-family:Arial;font-size:13px;font-weight:700;}#yiv9801650905 .yiv9801650905bold a {text-decoration:none;}#yiv9801650905 dd.yiv9801650905last p a {font-family:Verdana;font-weight:700;}#yiv9801650905 dd.yiv9801650905last p span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv9801650905 dd.yiv9801650905last p span.yiv9801650905yshortcuts {margin-right:0;}#yiv9801650905 div.yiv9801650905attach-table div div a {text-decoration:none;}#yiv9801650905 div.yiv9801650905attach-table {width:400px;}#yiv9801650905 div.yiv9801650905file-title a, #yiv9801650905 div.yiv9801650905file-title a:active, #yiv9801650905 div.yiv9801650905file-title a:hover, #yiv9801650905 div.yiv9801650905file-title a:visited {text-decoration:none;}#yiv9801650905 div.yiv9801650905photo-title a, #yiv9801650905 div.yiv9801650905photo-title a:active, #yiv9801650905 div.yiv9801650905photo-title a:hover, #yiv9801650905 div.yiv9801650905photo-title a:visited {text-decoration:none;}#yiv9801650905 div#yiv9801650905ygrp-mlmsg #yiv9801650905ygrp-msg p a span.yiv9801650905yshortcuts {font-family:Verdana;font-size:10px;font-weight:normal;}#yiv9801650905 .yiv9801650905green {color:#628c2a;}#yiv9801650905 .yiv9801650905MsoNormal {margin:0 0 0 0;}#yiv9801650905 o {font-size:0;}#yiv9801650905 #yiv9801650905photos div {float:left;width:72px;}#yiv9801650905 #yiv9801650905photos div div {border:1px solid #666666;height:62px;overflow:hidden;width:62px;}#yiv9801650905 #yiv9801650905photos div label {color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv9801650905 #yiv9801650905reco-category {font-size:77%;}#yiv9801650905 #yiv9801650905reco-desc {font-size:77%;}#yiv9801650905 .yiv9801650905replbq {margin:4px;}#yiv9801650905 #yiv9801650905ygrp-actbar div a:first-child {margin-right:2px;padding-right:5px;}#yiv9801650905 #yiv9801650905ygrp-mlmsg {font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv9801650905 #yiv9801650905ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv9801650905 #yiv9801650905ygrp-mlmsg select, #yiv9801650905 input, #yiv9801650905 textarea {font:99% Arial, Helvetica, clean, sans-serif;}#yiv9801650905 #yiv9801650905ygrp-mlmsg pre, #yiv9801650905 code {font:115% monospace;}#yiv9801650905 #yiv9801650905ygrp-mlmsg * {line-height:1.22em;}#yiv9801650905 #yiv9801650905ygrp-mlmsg #yiv9801650905logo {padding-bottom:10px;}#yiv9801650905 #yiv9801650905ygrp-msg p a {font-family:Verdana;}#yiv9801650905 #yiv9801650905ygrp-msg p#yiv9801650905attach-count span {color:#1E66AE;font-weight:700;}#yiv9801650905 #yiv9801650905ygrp-reco #yiv9801650905reco-head {color:#ff7900;font-weight:700;}#yiv9801650905 #yiv9801650905ygrp-reco {margin-bottom:20px;padding:0px;}#yiv9801650905 #yiv9801650905ygrp-sponsor #yiv9801650905ov li a {font-size:130%;text-decoration:none;}#yiv9801650905 #yiv9801650905ygrp-sponsor #yiv9801650905ov li {font-size:77%;list-style-type:square;padding:6px 0;}#yiv9801650905 #yiv9801650905ygrp-sponsor #yiv9801650905ov ul {margin:0;padding:0 0 0 8px;}#yiv9801650905 #yiv9801650905ygrp-text {font-family:Georgia;}#yiv9801650905 #yiv9801650905ygrp-text p {margin:0 0 1em 0;}#yiv9801650905 #yiv9801650905ygrp-text tt {font-size:120%;}#yiv9801650905 #yiv9801650905ygrp-vital ul li:last-child {border-right:none !important;}#yiv9801650905
Здравствуй Вадим! Срд 30 Ноя 2016 20:10:26 +0600, Vadim Godunko vgodunko@... [ada ru] <ada [email protected]> написал: > Стандартных средств для этого нет. А поддержку SQLite можео найти, > например, тут http://forge.ada-ru.org/matreshka 1) Я совсем не понимаю, что значит "установить пакет ADA". Насколько я помню, общедоступные пакеты лежат в /usr/share/ada/libs/. Но как они туда попадают? Вот потому и спрашивал про менеджер пакетов. 2) Про "Матрёшку" я много слышал, но мне кажется, что это сильно большой монстр... Типа bust-a в С++ -- Всего хорошего! Сергей Ларионов
Здравствуй Дмитрий! Срд 30 Ноя 2016 20:38:06 +0600, [email protected] [ada ru] <ada [email protected]> написал: > SQLite поставляется в исходнике. Все что надо - написать with в файле проекта. См. В исходниках Ada? И куда их нужно положить для доступности? > http://www.dmitry-kazakov.de/ada/components.htm#SQLite Спасибо, обязательно посмотрю. > К вопросу о пакетах. Есть gprinstall для ручной установки. А где его самого искать ? -- Всего хорошего! Сергей Ларионов
Исходники распаковать в любую директорию Попробовал установить "матрёшку" - скачал исходы и прочитал README. Там одна строка - запусти make! Запустил... Увы! :-( Ну тогда решил пойти трандиционным путём: 1. make configure. Пояаилась программа configure - замечательно! 2. Запустил программу configure - появился файл Makefile.config - отлично ! 3. Запускаю make - облом: /usr/bin/ld: cannot find -lgnarl-5.4 /usr/bin/ld: cannot find -lgnat-5.4 collect2: error: ld returned 1 exit status Вообще-то libgnat у меня установлен. Но просто libgnat5, а не 5.4. Можно это как-то объехать? Устанавливать новейшую версию очень не хочется, так как, вполне ожидаемо, что уползут другие зависимости где-то...
On 12/02/2016 01:54 PM, sv_lary@... [ada_ru] wrote: > > > Исходники распаковать в любую директорию > > Попробовал установить "матрёшку" - скачал исходы и прочитал README. Там > одна строка - запусти make! Запустил... Увы! :-( > > Ну тогда решил пойти трандиционным путём: > > 1. make configure. Пояаилась программа configure - замечательно! > 2. Запустил программу configure - появился файл Makefile.config - отлично ! > 3. Запускаю make - облом: > > /usr/bin/ld: cannot find -lgnarl-5.4 > /usr/bin/ld: cannot find -lgnat-5.4 > collect2: error: ld returned 1 exit status > От себя посоветую поставить нормальный и проверенный компилятор. К сожалению многие источники компиляторов не умеют правильно собирать дистрибутив и не проверяют результат. Так что поставьте GNAT GPL 2016 и всё должно работать. А вот Макс может расскажет как же с этим бороться, ибо недавно он практиковался...
Птн 02 Дек 2016 12:54:26 +0200, sv [email protected] [ada ru] <ada [email protected]> написал: > > Попробовал установить "матрёшку" - скачал исходы и прочитал README. Там одна строка - запусти make! Запустил... Увы! :-( > Дистрибутив матрешки предполагает наличие работоспособного компилятора языка Ада, что, увы, не так в Вашем случае. > Ну тогда решил пойти трандиционным путём: > > 1. make configure. Пояаилась программа configure - замечательно! > 2. Запустил программу configure - появился файл Makefile.config - отлично ! > 3. Запускаю make - облом: > > /usr/bin/ld: cannot find -lgnarl-5.4 > /usr/bin/ld: cannot find -lgnat-5.4 > collect2: error: ld returned 1 exit status > > Вообще-то libgnat у меня установлен. Но просто libgnat5, а не 5.4. Можно это как-то объехать? Устанавливать новейшую версию очень не хочется, так как, вполне ожидаемо, что уползут другие зависимости где-то... > А что за система у Вас? Это линукс? Дебиан? Есть два пути: * не мучаться, поставить GNAT GPL 2016 с сайта AdaCore. Его можно поставить в $HOME куда-то и он не затронет системные пакеты и не нарушит зависимостей. У Вас будет рабочий GPS, gprbuild и свежий компилятор. * попробовать исправить базу данных gprbuild-а и ждать следующих глюков. Я бы советовал 1-й путь для начинающих. Если хотите рискнуть по 2-му - ищите /usr/share/gprconfig/compilers.xml в нем строки <compiler description> <name>GNAT</name> <executable prefix="1">(.*-wrs-.*|...... <version> <external>${PREFIX}gnatls -v --version</external> <grep regexp="^GNATLS.+?(\d+(\.\d+)?)" group="1"></grep> эту строку меняете на <grep regexp="^GNATLS.+?(\d+)" group="1"></grep> и пробуете снова Удачи!
> А что за система у Вас? Это линукс? Дебиан? Ubuntu 16,04 > Я бы советовал 1-й путь для начинающих. > Если хотите рискнуть по 2-му - ищите /usr/share/gprconfig/compilers.xml в нем строки Я всё-таки пошёл по второму пути. Объяснение тут простое - я хочу повторить этот процесс в варианте кросс-компиляции. А для этого придётся использоват одну версию GCC и библиотек как для С программ, так и длдя Ada. В результате почти получасовой (!) сборки получил 16 библиотек в скрытом каталоге ,lib. И теперь не понимаю, что делать дальше. Разумеется, я могу переложить эти библиотеки в /usr/lib. Но будет ли этого достаточно? Ведь где-то надо разместить ещё и *.ads файлы... И какие именно ?! Или не мучаться, а просто сказать make install ?
Здравствуйте, Максим! > Интересно! А под что будет кросс? У меня на столе лежит ARM (i.MX6) и PowerPC (440). Сейчас ситуация такая: я могу собрать Ada программу и туда и сюда. Но, только "ручками" - без участия службы проектов GNAT. Соответственно - только самые простые. Да ещё и библиотек не хватает. Так что у меня две задачи: 1. Заставить работать *.gpr 2. Собрать необходимые библиотеки > Для установки нужно использовать make install. Обязательно попробую. Спасибо! > Да и не просил пока еще никто. Ну да... Когда я завожу разговор про Ada с коллегами, на меня смотрят как на призрак, явившийся с того света :-)
Пнд 05 Дек 2016 05:39:33 +0200, sv [email protected] [ada ru] <ada [email protected]> написал: > > Я всё-таки пошёл по второму пути. Объяснение тут простое - я хочу повторить этот процесс в варианте кросс-компиляции. А для этого придётся использоват одну версию GCC и библиотек как для С программ, так и длдя Ada. > Интересно! А под что будет кросс? > В результате почти получасовой (!) сборки получил 16 библиотек в скрытом каталоге ,lib. И теперь не понимаю, что делать дальше. Разумеется, я могу переложить эти библиотеки в /usr/lib. Но будет ли этого достаточно? Ведь где-то надо разместить ещё и *.ads файлы... И какие именно ?! Или не мучаться, а просто сказать > > make install > > ? > В матрешке много модулей, поэтому собирается несколько библиотек, чтобы можно было выбрать то, что нужно. Большую часть времени компиляции занимает AMF - реализация UML на Аде. Это модуль можно отключить, если задать ./configure --without-amf. Для установки нужно использовать make install. Можно сделать make install PREFIX=/tmp/inst и посмотреть что он ставит. В зависимости от конфигурации ставятся дополнительные файлы, например CLDR для локалей или WebAPI для a2js. Хорошо бы сделать пакеты для Debian/Ubuntu, как это сейчас в Fedora, да руки не доходят. Да и не просил пока еще никто.
Здравствуйте, Максим! > Для установки нужно использовать make install. Сделал. Попытался запустить сборку теста SQL - /examples/sql. После некоторого разбирательства с каталогами .obj, сборка пошла. При этом получил следующие сообщения: gnatgcc -c -g -gnat05 simple_sql.adb simple_sql.adb:110:40: "Query" has at least one "out" or "in out" parameter simple_sql.adb:110:40: call to this function only allowed in Ada 2012 simple_sql.adb:119:40: "Query" has at least one "out" or "in out" parameter simple_sql.adb:119:40: call to this function only allowed in Ada 2012 simple_sql.adb:130:48: "Query" has at least one "out" or "in out" parameter simple_sql.adb:130:48: call to this function only allowed in Ada 2012 simple_sql.adb:136:17: "Next" has at least one "out" or "in out" parameter simple_sql.adb:136:17: call to this function only allowed in Ada 2012 gprbuild: *** compilation phase failed И здесь у меня две гипотьезы: Я использую старую версию GNAT Надо добавить какой-то ключик в проект Или ещё что-то?
sv_lary@... [ada_ru] wrote: > И здесь у меня две гипотьезы: > > * Я использую старую версию GNAT Очень может быть - в свежем компиляторе режим Ada2012 включен по умолчанию > * Надо добавить какой-то ключик в проект Попробуйте '-gnat12' - он включает режим Ada2012
Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти