gtkada-2018 Adacore在Ubuntu-18.04.1上的安装问题

时间:2018-11-21 07:33:31

标签: ubuntu hyperlink xcb

我在Ubuntu 18.04.1 Desktop(全新安装)上安装gtkada-2018(Adacore),但在链接时会导致libxcb-xlib.so.0警告。 有人可以帮我解决此问题吗?

  1. 我首先安装了GNAT社区

    sudo ./gnat-community-2018-20180528-x86_64-linux-bin 将Directry设置为/ usr / gnat 在这里,带GPS的Ada可以正常工作。

  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. 安装后,使用GPS向导创建一个非常简单的gtkada程序并进行构建时,将显示以下相同消息:

  

链接[link] main.adb       /usr/gnat/bin/../libexec/gcc/x86_64-pc-linux-gnu/7.3.1/ld:警告:/ usr / gnat / lib / libgtk-3需要libxcb-xlib.so.0 .so,不是   找到(尝试使用-rpath或-rpath-link)       [2018-11-15 20:43:28]进程成功终止,经过时间:01.00s

  1. 症状重现100%。
  2. gtkada-2017并未发生此问题。

5 个答案:

答案 0 :(得分:1)

我找到了解决方法。
我写了所有故事从头开始在Ubuntu 18.04.1中安装gnat-2018和gtkada-2018(Adacore)。

准备

#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/more Gnat-community-2018-20180528-x86_64-linux-bin下载文件
  2. 在Nautilus中将文件可执行文件设置为+ x或tick属性-permission-Execute。
  3. 不使用sudo执行Gnat-community-2018-20180528-x86_64-linux-bin

      

    sudo在安装过程中引起警告,然后在终端中不使用sudo或仅   双击Nautilus中的文件。

  4. 很快需要安装目录,输入例如/ usr / gnat

  5. 几分钟后,安装向导完成。
  6. 设置PATH。
    例如export PATH=/usr/gnat/bin:$PATH,例如在〜/ .bashrc

现在,GPS可以使用了,您可以使用除gtkada之外的所有Ada功能。

  1. 关闭终端

gtkada准备

如果要安装在同一目录中,例如/ usr / gnat,然后跳过下一个#21。

  1. 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来获取它。

  1. 转到http://rpm.pbone.net/index.php3/stat/3/limit/9/srodzaj/1/dl/40/search/libxcb.so.1/field[]/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.9kB)。
  5. 安装可将RPM文件转换为DEB文件的外星人。

    sudo apt安装外星人

  6. 从RPM转换为DEB

    须藤外星人libxcb-1.12-4pclos2017.x86_64.rpm

    libxcb_1.12-5_amd64.deb已生成。
    现在,这里有2个文件: mori @ envy:〜/下载$ ls -al lib*
    -rwxrwxr-x 1 mori mori 159903 Dec 27 27:12 libxcb-1.12-4pclos2017.x86_64.rpm
    -rw-r--r-- 1个根目录152024 1月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根根31 Dec 25 25:22 libxcb-xlib.so.0-> ../../usr/lib64/libxcb.so.1.1.0
    lrwxrwxrwx 1根根31 Dec 25 25: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 MiB,2018年5月24日
  2. 将其设置为可执行文件
  3. 提取文件
  4. 将fie libxcb.so.1.1.0复制到gtk-bin / lib64目录:
    下载/ 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 2017年8月16日libxcb.so.1.1.0
    lrwxrwxrwx 1根根17 Dec 25 22:18 libxcb-xlib.so.0-> ./libxcb.so.1.1.0
  8. 再次将libxcb.so.1.1.0复制到gtk-bin / lib目录:
    下载/ 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 2017年8月16日libxcb.so.1.1.0
    lrwxrwxrwx 1根根17 Dec 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 = $前缀/库:$ 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 = $前缀/共享:$ XDG_DATA_DIRS
    XDG_CONFIG_DIRS = $前缀/等:$ XDG_CONFIG_DIRS
    GSETTINGS_BACKEND =内存
    GLADE_BASE_DIR = $前缀
    GPR_PROJECT_PATH = $前缀/ lib / gnat:$ 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
    导出GLADE_BASE_DIR
    导出GPR_PROJECT_PATH

注意1:如果您将其安装到另一个目录,则应该更改第一行,
 例如/ usr / gtkada然后更改prefix="/usr/gtkada"
注意2:1/05/2019 FONTCONFIG_FILE已更改。

  1. 关闭终端

测试版本功能

  1. 最简单的方法是使用GPS向导

    • 创建测试目录并运行gps
    • 〜/ ada / simplegtkada $ gps
    • “创建新项目”,“ GtkAda”,“简单窗口”可以创建一个简单的Hello世界。
    • “构建并运行”可以检查功能。
    • 检查终端应用程序执行是否未输出任何错误:
    • 〜/ ada / simplegtkada / obj $ ./main
  2. 使用testgtk进行全面构建测试

    • 使用-a选项将所有安装文件复制到另一个目录。
    • 〜/下载$ cp -a gtkada-community-community-2018-x86_64-linux-bin gtkada-test
    • 删除〜/ Downloads / gtkada-test / testgtk / obj
    • 中的所有文件
    • 在〜/ Downloads / gtkada-test / testgtk中删除2个文件testgtk和test_rtree
    • 〜/ Downloads / gtkada-test / testgtk $ gprbuild
    • 所有testgtk文件应重新编译并链接。
    • 尝试./testgtk并检查功能。
    • 〜/ Downloads / gtkada-test / testgtk $ ./testgtk

已知问题

  1. gedit问题
    尽管Nautilus可以启动,但是Terminal的gedit无法启动。 环境设置应该会影响它,但是我无法修复它。 让我知道是否有人知道解决方案。

  2. 编译器参考警告
    这些警告会同时在静态和静态图片编译中显示,但我认为我们可以忽略它们(它们在2017年没有发生):
    gtkada-canvas_view.ads:590:07:警告:未引用形式参数“ At_Point”
    gtkada-canvas_view.ads:591:07:警告:未引用形式参数“上下文”
    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-消息:无法加载模块“ unity-gtk-module”
 Gtk-消息:无法加载模块“ canberra-gtk-module”
在启动GPS和gtkada应用程序时。这让我感觉好些。

答案 1 :(得分:0)

似乎您错过了包裹。尝试安装:

sudo apt install libxcb-composite0

我正在根据您的新帖子修改答案:

这可能只是配置问题,GtkAda找不到Ada编译器。我发现this post建议在其中使用-v运行gprbuild,然后使用-v运行gprconfig来检查配置。

另一件事:我了解您是从下载的文件中安装GNAT的。为什么不尝试从Ubuntu存储库安装它呢?

答案 2 :(得分:0)

谢谢,我尝试过,但是安装如下退出了:

  1. 在/ usr / gnat /
  2. 中安装GNAT
  3. 此命令:sudo apt install libxcb-composite0
  4. / usr / gtkada /中的Gtkada安装消息是:

    目录/ usr / gtkada不存在。 是否要创建[Y / n]? ÿ 您现在准备好继续安装[Y / n]吗? 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”处理失败

    配置:错误:/ usr / bin / gprbuild测试在编译时失败!检查您的配置。

    发生错误。请参阅install.log。

  5. 我尝试了GPS并通过一个非常简单的程序对Ada进行了测试,它的构建和正常运行。

答案 3 :(得分:0)

我删除了/ usr / gtkada目录,但是libxcb-composite0现在仍然保留。 在同一目录/ usr / gnat中重新安装gtkada。

安装已完成,但是当链接示例程序testgtk时,发生了错误,并且未创建示例的可执行文件。 消息是:

git checkout master

安装项目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

-要使用该库,您可能需要更新LD_LIBRARY_PATH- -或运行ldconfig。您可能还需要更新GPR_PROJECT_PATH- -包括-

-/ usr / gnat / lib / gnat

GtkAda现在已经安装在您的计算机上。    您可以通过执行以下操作进入GtkAda环境:       “ /usr/gnat/bin/gtkada-env.sh”

答案 4 :(得分:0)

我确认Ubuntu 18.04.02上的最新Adacore GNAT-2019和GTKADA-2019解决了大多数安装问题。

双击GNAT-2019就像与2018一样简单。

/usr/gnat/bin:添加到PATH的顶部

如果GTKADA安装在不同的目录中,则

sudo visudo可能需要在此处,但是两个目录是否都位于同一目录(例如/usr/gnat)中都没关系。

GTKADA-2019只是sudo ./doinstall

日志中有一些警告,但它们似乎很小。

应该执行#43和#44以上。默认环境设置不适用于Ubuntu(在gtkada-env.sh上方使用)。