gtkada-2018 Установка Adacore Проблема на Ubuntu-18.04.1 - PullRequest
0 голосов
/ 21 ноября 2018

Я устанавливаю gtkada-2018 (Adacore) на рабочий стол Ubuntu 18.04.1 (чистый установленный), но это вызывает предупреждение libxcb-xlib.so.0 при компоновке.Кто-нибудь поможет мне решить эту проблему?

  1. Сначала я установил GNAT Community

    sudo ./gnat-community-2018-20180528-x86_64-linux-bin Setdirectry как / usr / gnat Здесь Ada с GPS работает нормально.

  2. И затем, gtkada-community-community-2018-x86_64-linux-bin

    Команда$sudo ./doinstall

----- длинные сообщения о сборке ----

Bind
[gprbind]    testgtk.bexch
[Ada]        testgtk.ali
[gprbind]    test_rtree.bexch
[Ada]        test_rtree.ali
Link
[link]       testgtk.adb
[link]       test_rtree.adb
/usr/gnat/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.3.1/ld: **warning: libxcb-xlib.so.0, needed by /usr/gnat/lib/libgtk-3.so, not found (try using -rpath or -rpath-link)**
/usr/gnat/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.3.1/ld: **warning: libxcb-xlib.so.0, needed by /usr/gnat/lib/libgtk-3.so, not found (try using -rpath or -rpath-link)**
-----follow long link messages ------

И пример программы testgtk не связан, и файл exec не создается.

После установки при создании очень простой программы gtkada с GPS Wizard,и построить, то эти же сообщения отображаются:

Ссылка [ссылка] main.adb /usr/gnat/bin/../libexec/gcc/x86_64-pc-linux-gnu / 7.3.1 / ld: предупреждение: libxcb-xlib.so.0, необходимое для /usr/gnat/lib/libgtk-3.so, не найдено (попробуйте использовать -rpath или -rpath-link) [2018-11-15 20:43:28] процесс успешно завершен, истекшее время: 01.00s

100% воспроизводимых выше симптомов. gtkada-2017 проблема не возникла.

Ответы [ 5 ]

0 голосов
/ 03 августа 2019

Я подтвердил, что последние версии Adacore GNAT-2019 и GTKADA-2019 в Ubuntu 18.04.02 устранили большинство проблем при установке.

GNAT-2019 просто дважды щелкает по нему, как и 2018.

Добавьте /usr/gnat/bin: в верхнюю часть PATH

sudo visudo здесь может понадобиться, если GTKADA установлен в другом каталоге, но это не имеет значения, если оба в одном каталоге (например, /usr/gnat).

GTKADA-2019 - это просто sudo ./doinstall

В журнале есть некоторые предупреждения, но они кажутся незначительными.

Над № 43 и № 44 должно быть сделано.Настройки среды по умолчанию не для Ubuntu (используйте выше gtkada-env.sh).

0 голосов
/ 02 января 2019

Я нашел решение.
Я пишу всю историю для установки gnat-2018 и gtkada-2018 (Adacore) в Ubuntu 18.04.1 с нуля.

Подготовка

#1 - № 8 только для моей памяти.

  1. Установить Ubuntu 18.04.1 с нуля
  2. Установить Google-Chrome
  3. sudo apt install chromium-browser
  4. sudo apt install synaptic
  5. gsettings set org.gnome.desktop.session idle-delay 1800
  6. sudo apt update
  7. sudo apt upgrade
  8. Перезагрузка ОС

  9. sudo apt install make

  10. sudo apt install gcc
  11. sudo apt install gprbuild
  12. sudo apt update
  13. sudo apt upgrade

Теперь приготовления были сделаны,

Установка GNAT

Загрузить файл с https://www.adacore.com/download/more Gnat-community-2018-20180528-x86_64-linux-bin Установить исполняемый файл + x или отметить свойство-allow-Execute в Nautilus.

Выполнение Gnat-community-2018-20180528-x86_64-linux-bin без sudo

sudo вызывает предупреждение в процессе установки, затем обходится без sudo в терминале,или просто дважды щелкните файл в Nautilus.

Скоро потребуется установочный каталог, введите, например, / usr / gnat

Через несколько минут, Мастер установки завершает работу. Установить PATH.
Например, export PATH=/usr/gnat/bin:$PATH Например, в ~ / .bashrc

Теперь GPS работает, и вы можете использовать все функции Ada, кроме gtkada.

Закрыть терминал

gtkada Подготовка

Если вы хотите установить в тот же каталог, например / usr / gnat, тогда пропустите следующий # 21.

gtkada в другом каталоге

Если вы хотите установить gtkada в другом каталоге (например, / usr / gtkada), выполните в Терминале:
sudo visudo

Добавьте тот же PATH в строку «По умолчанию», как показано ниже (например, / usr / gnat / bin):
Defaults secure_path="/usr/gnat/bin:/usr/local/sbin:...

Сохранить и выйти в visudo сложно, сделайте следующее:
^o BS BS BS BS Enter Y Y ^x
Введите для проверки еще раз, sudo visudo, затем выйдите с ^x
после проверки.

Далее получите отсутствующий файл libxcb-xlib-so.0.
Этот файл не доступен напрямую, затем получите RPM-файл, в который он включен, и преобразуйте его в формат файла deb, чтобы установить Ubuntu и получить его.

Перейдите на http://rpm.pbone.net/index.php3/stat/3/limit/9/srodzaj/1/dl/40/search/libxcb.so.1/field[]/1/field[]/2 Найдите PCLinuxOS и перейдите по ссылке www.pclinuxos.com / pclinuxos / apt / pclinuxos / 64bit / RPMS.x86_64 / libxcb-1.12-4pclos2017.x86_64.rpm Загрузить ftp.ntua.gr libxcb-1.12-4pclos2017.x86_64.rpm Установить исполняемый файл:
libxcb-1.12-4pclos2017.x86_64.rpm (159,9 КБ).

Установить инопланетянина, который может конвертировать файл RPM в файл DEB.

sudo apt install alien

Конвертировать из RPM в DEB

sudo alien libxcb-1.12-4pclos2017.x86_64.rpm

Была сгенерирована libxcb_1.12-5_amd64.deb.
Теперь 2 файла здесь: mori @ envy: ~ / Downloads $ ls -al lib*
-rwxrwxr-x 1 mori mori 159903 27 декабря 18:12 libxcb-1.12-4pclos2017.x86_64.rpm
-rw-r - r-- 1 корневой корень 152024 1 января 12:43 libxcb_1.12-5_amd64.deb

Установить пакет DEB: sudo dpkg -i libxcb_1.12-5_amd64.deb Целевой файл создается в каталоге / usr / lib64 (не в / usr / lib)
mori @ VB: / usr / lib64 $ ls -al libxcb-xlib*
lrwxrwxrwx 1 корневой корень 31 декабря 2516:22 libxcb-xlib.so.0 -> ../../usr/lib64/libxcb.so.1.1.0
lrwxrwxrwx 1 корневой корень 31 декабря 25 16:22 libxcb-xlib.so.0.0.0 -> ../../usr/lib64/libxcb.so.1.1.0
Настоящим файлом является libxcb.so.1.1.0, а libxcb-xlib.so.0 - это просто sym-ссылка.
Теперь, сохраните только libxcb.so.1.1.0 в другое безопасное место, я использовал USB-накопитель.

Удалите пакет deb:

sudo dpkg -r libxcb

Теперь вы получили отсутствующий файл и установите его вустановщик gtkada следующий.

Скачать gtkada-2018 (выбрать платформу и год) gtkada-community-2018-20180523-x86_64-linux-bin.tar.gz 136,9 МБ 24 мая 2018 Установить его исполняемым Извлечь файл Скопируйте файл libxcb.so.1.1.0 в каталог gtk-bin / lib64:
Загрузки / gtkada-community-community-2018-x86_64-linux-bin / gtk-bin / lib64 SetИсполняемый файл libxcb.so.1.1.0 Установить ссылку sym
gtk-bin / lib64 $ sudo ln -s ./libxcb.so.1.1.0 ./libxcb-xlib.so.0 Проверить, создана ли ссылка sym
/ Downloads /gtkada-community-community-2018-x86_64-linux-bin / gtk-bin / lib64 $ ls -al libxcb*
-rwxr-xr-x 1 mori mori 154424 16 августа 2017 г. libxcb.so.1.1.0
lrwxrwxrwx1 корневой корень 17 декабря 25 22:18 libxcb-xlib.so.0 -> ./libxcb.so.1.1.0 Скопируйте еще раз libxcb.so.1.1.0 в каталог gtk-bin / lib:
Загрузки / gtkada-community-community-2018-x86_64-linux-bin / gtk-bin / lib Установить исполняемый файл libxcb.so.1.1.0 Установить символическую ссылку
gtk-bin / lib $ sudo ln -s ./libxcb.so.1.1.0 ./libxcb-xlib.so.0 Проверить, создана ли символическая ссылка
/ Downloads / gtkada-community-community-2018-x86_64-linux-bin / gtk-bin / lib $ ls -al libxcb*
-rwxr-xr-x 1 mori mori 154424 16 августа 2017 г. libxcb.so.1.1.0
lrwxrwxrwx 1 корневой корень 1725 декабря 22:18 libxcb-xlib.so.0 -> ./libxcb.so.1.1.0

Теперь вы подготовили все настройки.

gtkada Установка

Загрузки / gtkada-community-community-2018-x86_64-linux-bin $ sudo ./doinstall
Установить каталог установки / usr / gnat (то же самое) или / usr / gtkada или другое.
Через несколько минут, установка заканчивается.

Установка сред gtkada

Не следуйте комментариям установщика, они предназначены для некоторых других ОС.
Теперь нижняя часть ~ / .bashrc:

export PATH=/usr/gnat/bin:$PATH

Добавьте еще одну строку, подобную этой
. ./gtkada-env.sh (Примечание: точка-пробел-точка)

Создайте текстовый файл ~ / gtkada-env.shсо следующим текстом:

prefix = "/ usr / gnat"
LD_LIBRARY_PATH_64 = $ prefix / lib: $ LD_LIBRARY_PATH_64
PKG_CONFIG_PATH = $ prefix / lib / pkgconfig: / usr / pggconfig: / usr/ usr / lib / pkgconfig: / usr / share / pkgconfig
GDK_PIXBUF_MODULE_FILE = $ prefix / lib / gdk-pixbuf-2.0 / 2.10.0 / loaders.cache
GDK_PIXBUF_MODULEDIR = lib-gf-ff-g-ff-g-ff-fd-gf-fd-gf-fd-gf-fd-fd-fd-gf2.0 / 2.10.0 / loaders /
FONTCONFIG_FILE = / etc / fonts / fonts.conf
XDG_DATA_DIRS = $ prefix / share: $ XDG_DATA_DIRS
XDG_CONFIG_DIRS = $ prefix / etcON = $ X_DG_FD_GS_DF_DG_DX_S_DF_DK_FD_GS_DF_D_S_TF_G_DF_D_S_TF * $ XG_DG_FD_GS_FD_GS_F_DB * * *память
GLADE_BASE_DIR = $ префикс
GPR_PROJECT_PATH = $ PREFIX / Библиотека / комар: $ GPR_PROJECT_PATH
экспорт LD_LIBRARY_PATH_64
экспорт PKG_CONFIG_PATH
экспорт GDK_PIXBUF_MODULE_FILE
экспорт GDK_PIXBUF_MODULEDIR
экспорт FONTCONFIG_FILE
экспорт XDG_DATA_DIRS
экспорт XDG_CONFIG_DIRS
экспорт GSETTINGS_BACKEND
export GLADE_BASE_DIR
export GPR_PROJECT_PATH

ПРИМЕЧАНИЕ 1. Первая строка должна быть изменена, если вы установили ее в другой каталог,
например, / usr / gtkada, а затем изменить prefix="/usr/gtkada"
ПРИМЕЧАНИЕ 2. 05.01.2009 FONTCONFIG_FILE был изменен.

Закрыть терминал

Функциональные возможности тестовой сборки

Самый простой способ - использовать GPS Wizard

  • Создать тестовый каталог и запустить gps
  • ~ / ada / simplegtkada $ gps
  • «Создать новый проект», «GtkAda», «Простое окно» могут сделать простой Hello World.
  • Сборка и запуск позволяют проверить функциональность.
  • Проверьте, не выдает ли ошибка при выполнении приложения терминала:
  • ~ / ada / simplegtkada / obj $ ./main

Полный тест сборки с использованием testgtk

  • Скопируйте все установочные файлы с опцией -a в другой каталог.
  • ~ / Downloads $ cp -a gtkada-community-community-2018-x86_64-linux-bin gtkada-test
  • Удалить все файлы в ~ / Downloads / gtkada-test / testgtk / obj
  • Удалить 2 файла testgtk и test_rtree в ~ / Downloads/ gtkada-test / testgtk
  • ~ / Загрузки / gtkada-test / testgtk $ gprbuild
  • Все файлы testgtk должны быть скомпилированы и снова связаны.
  • Попробуйте ./testgtk и проверьте функциональность.
  • ~ / Загрузки / gtkada-test / testgtk $ ./testgtk

Известная проблема

gedit проблема
gedit из Терминала не запускается, хотя Nautilus может запустить его.Настройки среды должны влиять на это, но я не мог это исправить.Дайте мне знать, если кто-нибудь знает решение.

Предупреждения по ссылкам компилятора
Эти предупреждения отображаются как при статических, так и при статических компиляциях, но я думаю, что мы можем их игнорировать (они сделалине произойдет в 2017 году):
gtkada-canvas_view.ads:590:07: предупреждение: формальный параметр «At_Point» не указан
gtkada-canvas_view.ads:591:07: предупреждение: формальный параметр «Context» имеет значениене указана
gtkada-canvas_view.ads:792:07: предупреждение: формальный параметр «Item» не указан
gtkada-canvas_view.ads:1984:07: предупреждение: формальный параметр «At_Point» не указан
gtkada-canvas_view.ads:1985:07: предупреждение: формальный параметр «Контекст» не указан
gtkada-canvas_view.ads:1992:07: предупреждение: формальный параметр «Вид» не указан

Преимущество gtkada 2018 версии

Больше не отображаются сообщения об ошибках, которые обычно были в версиях 2016 и 2017 гг., Такие как:
Gtk-Message: Failed to load module "единичный gtk-module "
Gtk-Message: не удалось загрузить модуль" canberra-gtk-module "
при запуске приложений GPS и gtkada.Это заставляет меня чувствовать себя лучше.

0 голосов
/ 21 ноября 2018

Спасибо, я попробовал это сделать, но процесс установки завершился раньше, как показано ниже:

  1. Установка GNAT в / usr / gnat /
  2. Эта команда: sudo apt install libxcb-композит0
  3. Установка Gtkada в / usr / gtkada / Сообщения:

    Каталог / usr / gtkada не существует.Вы хотите создать его [Да / Нет]?y Теперь вы готовы приступить к установке [Да / Нет]?y

    Копирование двоичных файлов Gtk + Настройка среды Компиляция GtkAda проверка типа системы сборки ... x86_64-unknown-linux-gnu проверка типа хост-системы ... x86_64-unknown-linux-gnu проверка типа целевой системы... x86_64-unknown-linux-gnu проверка gcc ... gcc проверка работоспособности компилятора C ... да проверка имени выходного файла компилятора C по умолчанию ... a.out проверка суффикса исполняемых файлов ... проверкамы выполняем кросс-компиляцию ... нет проверки суффикса объектных файлов ... o проверяется, используется ли компилятор GNU C ... да проверяется, принимает ли gcc -g ... да

    проверяется gccвозможность принять ISO C89 ... не требуется

    проверка на gprbuild ... / usr / bin / gprbuild

    проверка на gprinstall ... / usr / bin / gprinstall

    проверка того, что ваш компилятор gnat работает на простом примере ... Ошибка: не найден собственный компилятор для языка 'ada', среда исполнения по умолчанию conftest.gpr: 1: 09: для этого проекта не определены языки gprbuild: "conftest.gpr "сбой обработки

    no

    configure: error: / usr / bin / gprbuild test не выполнен во время компиляции!Проверьте свою конфигурацию.

    Произошла ошибка.Пожалуйста, смотрите install.log.

  4. Я попробовал GPS и протестировал Ada с очень простой программой, она была построена и работала как обычно.

0 голосов
/ 22 ноября 2018

Я удалил каталог / usr / gtkada, но libxcb-смесь0 остается сейчас.Переустановил gtkada в тот же каталог /usr/gnat.

Установка прошла в финал, но когда программа-образец testgtk связывалась, произошла ошибка, и образец файла не удалось создать.Это были следующие сообщения:

 [index]        libgtkada_gl.a
 Bind
 [gprbind]      testgtk.bexch
 [Ada]          testgtk.ali
 [gprbind]      test_rtree.bexch
 [Ada]          test_rtree.ali
Link
 [link]         testgtk.adb
 [link]         test_rtree.adb
/usr/gnat/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.3.1/ld: 
warning: libxcb-xlib.so.0, needed by /usr/gnat/lib/libgtk-3.so, 
not found (try using -rpath or -rpath-link)
/usr/gnat/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.3.1/ld: 
warning: libxcb-xlib.so.0, needed by /usr/gnat/lib/libgtk-3.so, 
not found (try using -rpath or -rpath-link)
/usr/gnat/bin/gprinstall  -p -f --project-subdir=lib/gnat 
--build-var=GTKADA_BUILD,LIBRARY_TYPE --install-name=gtkada --prefix=/usr/gnat
-XGTK_PREFIX=/usr/gnat -XLIBRARY_TYPE=static --build-name=static \
--sources-subdir=include/gtkada/gtkada.static \
--lib-subdir=lib/gtkada/gtkada.static \ -Psrc/gtkada.gpr
Install project GtkAda - static
/usr/gnat/bin/gprinstall  -p -f --project-subdir=lib/gnat
--build-      var=GTKADA_BUILD,LIBRARY_TYPE --install-name=gtkada
--prefix=/usr/gnat
-XGTK_PREFIX=/usr/gnat -XLIBRARY_TYPE=static-pic --build-name=static-pic \
--sources-subdir=include/gtkada/gtkada.static-pic \
--lib-subdir=lib/gtkada/gtkada.static-pic \
-Psrc/gtkada.gpr
 Install project GtkAda - static-pic
 /usr/gnat/bin/gprinstall  -p -f --project-subdir=lib/gnat 
--build-var=GTKADA_BUILD,LIBRARY_TYPE --install-name=gtkada --prefix=/usr/gnat
XGTK_PREFIX=/usr/gnat -XLIBRARY_TYPE=relocatable --build-name=relocatable \
--sources-subdir=include/gtkada/gtkada.relocatable \
--lib-subdir=lib/gtkada/gtkada.relocatable \
-Psrc/gtkada.gpr
Install project GtkAda - relocatable
/usr/gnat/bin/gprinstall  -p -f --project-subdir=lib/gnat --build-
var=GTKADA_BUILD,LIBRARY_TYPE --install-name=gtkada --prefix=/usr/gnat
-XGTK_PREFIX=/usr/gnat -XLIBRARY_TYPE=static \
--mode=usage -Psrc/tools/tools.gpr
Install project Tools
cd testgtk; /usr/gnat/bin/gprinstall  -p -f --project-subdir=lib/gnat --build-  
var=GTKADA_BUILD,LIBRARY_TYPE --install-name=gtkada --prefix=/usr/gnat 
-XGTK_PREFIX=/usr/gnat -XLIBRARY_TYPE=static \
--mode=usage --exec-subdir=/usr/gnat/share/examples/gtkada/testgtk \
-Ptestgtk.gpr -aP ../src

Установить проект TestGtk

GtkAda has now been installed.                                   --

- Чтобы использовать библиотеку, вам может потребоваться обновить LD_LIBRARY_PATH - - или запустить ldconfig.Вам также может понадобиться обновить GPR_PROJECT_PATH - - чтобы включить -

- / usr / gnat / lib / gnat

GtkAda теперь установлена ​​на вашем компьютере.Вы можете войти в среду GtkAda, выполнив: "/usr/gnat/bin/gtkada-env.sh"

0 голосов
/ 21 ноября 2018

Кажется, вы пропустили посылку.Попробуйте установить:

sudo apt install libxcb-composite0

Я редактирую свой ответ для вашего нового сообщения:

Вероятно, это просто вопрос конфигурации, когда GtkAda не находит компилятор Ada.Я нашел этот пост , где предлагается запустить gprbuild с -v, а затем gprconfig с -v для проверки конфигурации.

Еще одна вещь: я понимаю, что вы установили GNAT из загруженногофайл.Почему бы не попробовать установить его из репозитория Ubuntu?

...