gtkada-2018 Проблема с установкой Adacore на Ubuntu-18.04.1

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

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

    sudo ./gnat-community-2018-20180528-x86_64-linux-bin Установите директорию как / usr / gnat Здесь Ада с 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 ------
  1. И пример программы testgtk не связан, и файл exec не создается.

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

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

  1. 100% воспроизводимость вышеуказанного симптома.
  2. gtkada-2017 выдачи не произошло.

person moriy    schedule 21.11.2018    source источник


Ответы (5)


Я нашел решение.
Я пишу всю историю по установке 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

  1. Загрузите файл с https://www.adacore.com/download/
  2. Установите исполняемый файл + x или отметьте свойство-разрешение-Выполнить в Nautilus.
  3. # P5 #
    # P6 #
  4. Скоро потребуется каталог установки, введите, например, / usr / gnat

  5. Через несколько минут мастер установки завершит свою работу.
  6. Задайте ПУТЬ.
    например. export PATH=/usr/gnat/bin:$PATH например в ~ / .bashrc

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

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

gtkada Подготовка

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

  1. gtkada в другом каталоге
    # P10 # # P11 # # P12 #

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

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

    sudo apt install alien

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

    Судо инопланетянин 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 root root 152024 1 января 12:43 libxcb_1.12-5_amd64.deb

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

    sudo dpkg -r libxcb

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

  1. Загрузите gtkada-2018 (выберите платформу и год) gtkada-community-2018-20180523-x86_64-linux-bin .tar.gz 136,9 МБ, 24 мая 2018 г.
  2. Установите его исполняемый файл
  3. Извлечь файл
  4. Скопируйте файл libxcb.so.1.1.0 в каталог gtk-bin / lib64:
    Downloads / gtkada-community-community-2018-x86_64-linux-bin / gtk-bin / lib64
  5. Установите исполняемый файл libxcb.so.1.1.0
  6. Установить символьную ссылку
    gtk-bin / lib64 $ sudo ln -s ./libxcb.so.1.1.0 ./libxcb-xlib.so.0
  7. Проверьте, создана ли символьная ссылка
    / 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
    lrwxrwxrwx 1 root root 17 декабря 25 22:18 libxcb-xlib.so.0 -> ./libxcb.so.1.1.0
  8. Скопируйте еще раз libxcb.so.1.1.0 в каталог gtk-bin / lib:
    Downloads / gtkada-community-community-2018-x86_64-linux-bin / gtk-bin / lib
  9. Установите исполняемый файл libxcb.so.1.1.0
  10. Установить символьную ссылку
    gtk-bin / lib $ sudo ln -s ./libxcb.so.1.1.0 ./libxcb-xlib.so.0
  11. Проверьте, создана ли символьная ссылка
    / 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 root root 17 декабря 25 22:18 libxcb-xlib.so.0 -> ./libxcb.so.1.1.0

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

Установка gtkada

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

Установить среды gtkada

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

export PATH=/usr/gnat/bin:$PATH
  1. Добавьте еще одну такую ​​строку
    . ./gtkada-env.sh (Примечание: точка-пробел-точка)

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

    prefix = "/ usr / gnat"
    LD_LIBRARY_PATH_64 = $ prefix / lib: $ LD_LIBRARY_PATH_64
    PKG_CONFIG_PATH = $ prefix / lib / pkgconfig: / usr / lib64 / pkgconfig: / usr / lib / pkgconfig: / usr / share / pkgconfig
    GDK_PIXBUF_MODULE_FILE = $ prefix / lib / gdk-pixbuf-2.0 / 2.10.0 / loaders.cache
    GDK_PIXBUF_MODULEDIR = $ prefix / lib / gdk-pixbuf-2.0 / 2.10.0 / loaders /
    FONTCONFIG_FILE = / etc / fonts / fonts.conf
    XDG_DATA_DIRS = $ prefix / share: $ XDG_DATA_DIRS
    XDG_CONFIG_DIRS = $ prefix / etc: $ XDG_CONFIG_DIRS
    GSETTINGS_BACK_END = память

    GPR_PROJECT_PATH = $ prefix / lib / gnat: $ GPR_PROJECT_PATH
    экспорт LD_LIBRARY_PATH_64
    экспорт PKG_CONFIG_PATH
    экспорт GDK_PIXBUF_MODULE_FILE
    экспорт GDK_PIXBUF_MODULEDIR_DIR_DIRS
    экспорт экспорт X_SIDON экспорт X_SATA
    экспорт X_SDON экспорт Экспорт X_SET GSETTINGS_BACKEND
    экспорт GLADE_BASE_DIR
    экспорт GPR_PROJECT_PATH

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

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

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

  1. Самый простой способ - использовать Мастер GPS.

    • Create a test directory and run gps
    • ~ / ada / simplegtkada $ gps
    • «Создать новый проект», «GtkAda», «Простое окно» можно сделать простым Hello world.
    • Build and Run может проверить работоспособность.
    • Убедитесь, что выполнение приложения Терминал не выдает ошибок:
    • ~ / ada / simplegtkada / obj $ ./main
  2. Полный тест сборки с использованием testgtk

    • Copy all the install files with -a option to another directory.
    • ~ / Загрузки $ 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

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

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

  2. Справочные предупреждения компилятора
    Эти предупреждения отображаются как при компиляции статических, так и статических изображений, но я думаю, что мы можем их игнорировать (их не было в 2017 году):
    gtkada-canvas_view.ads:590:07: warning: формальный параметр "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: предупреждение: формальный параметр" Context "не упоминается
    gtkada-canvas_view.ads:1992:07: предупреждение: формальный параметр "View" не упоминается

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

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

person moriy    schedule 01.01.2019
comment
Ваш ответ требует серьезной правки форматирования. Может быть, он полный, но нечитаемый. - person Francesco Boi; 02.01.2019

Спасибо, попробовал, но установка прервалась раньше:

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

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

    Копирование двоичных файлов 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 не удалось выполнить тест во время компиляции! Проверьте свою конфигурацию.

    Произошла ошибка. См. Install.log.

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

person moriy    schedule 21.11.2018

Я удалил каталог / usr / gtkada, но теперь libxcb-Composite0 остался. Переустановил 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"

person moriy    schedule 22.11.2018

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

sudo apt install libxcb-composite0

Я редактирую свой ответ в соответствии с вашим новым сообщением:

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

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

person FloT    schedule 21.11.2018
comment
~ $ sudo apt установить libxcb-complex0 - person moriy; 21.11.2018
comment
Спасибо, попробую как вы писали. - person moriy; 22.11.2018

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

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

Добавьте /usr/gnat/bin: в начало ПУТЬ

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

GTKADA-2019 - это всего лишь sudo ./doinstall

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

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

person moriy    schedule 03.08.2019