我在Ubuntu 18.04.1 Desktop(全新安装)上安装gtkada-2018(Adacore),但在链接时会导致libxcb-xlib.so.0警告。 有人可以帮我解决此问题吗?
我首先安装了GNAT社区
sudo ./gnat-community-2018-20180528-x86_64-linux-bin 将Directry设置为/ usr / gnat 在这里,带GPS的Ada可以正常工作。
然后是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文件。
安装后,使用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
答案 0 :(得分:1)
我找到了解决方法。
我写了所有故事从头开始在Ubuntu 18.04.1中安装gnat-2018和gtkada-2018(Adacore)。
#1-#8只是为了我的记忆。
sudo apt install chromium-browser
sudo apt install synaptic
gsettings set org.gnome.desktop.session idle-delay 1800
sudo apt update
sudo apt upgrade
重新启动操作系统
sudo apt install make
sudo apt install gcc
sudo apt install gprbuild
sudo apt update
sudo apt upgrade
现在,准备工作已经完成。
不使用sudo执行Gnat-community-2018-20180528-x86_64-linux-bin
sudo在安装过程中引起警告,然后在终端中不使用sudo或仅 双击Nautilus中的文件。
很快需要安装目录,输入例如/ usr / gnat
export PATH=/usr/gnat/bin:$PATH
,例如在〜/ .bashrc 现在,GPS可以使用了,您可以使用除gtkada之外的所有Ada功能。
如果要安装在同一目录中,例如/ usr / gnat,然后跳过下一个#21。
如果要将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来获取它。
安装可将RPM文件转换为DEB文件的外星人。
sudo apt安装外星人
从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
sudo dpkg -i libxcb_1.12-5_amd64.deb
ls -al libxcb-xlib*
卸载deb软件包:
sudo dpkg -r libxcb
现在,您得到了丢失的文件,然后将其设置到gtkada安装程序中。
sudo ln -s ./libxcb.so.1.1.0 ./libxcb-xlib.so.0
ls -al libxcb*
sudo ln -s ./libxcb.so.1.1.0 ./libxcb-xlib.so.0
ls -al libxcb*
现在您已经准备好所有设置。
sudo ./doinstall
请勿遵循安装程序的注释,它们适用于其他某些操作系统。
现在,〜/ .bashrc的底部是:
export PATH=/usr/gnat/bin:$PATH
再添加一行这样的内容
. ./gtkada-env.sh
(注意:点-空格-点)
使用以下文本创建文本文件〜/ 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已更改。
最简单的方法是使用GPS向导
gps
./main
使用testgtk进行全面构建测试
cp -a gtkada-community-community-2018-x86_64-linux-bin gtkada-test
gprbuild
./testgtk
并检查功能。 ./testgtk
gedit问题
尽管Nautilus可以启动,但是Terminal的gedit无法启动。
环境设置应该会影响它,但是我无法修复它。
让我知道是否有人知道解决方案。
编译器参考警告
这些警告会同时在静态和静态图片编译中显示,但我认为我们可以忽略它们(它们在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:警告:未引用形式参数“视图”
它不再显示通常在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)
谢谢,我尝试过,但是安装如下退出了:
/ 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。
我尝试了GPS并通过一个非常简单的程序对Ada进行了测试,它的构建和正常运行。
答案 3 :(得分:0)
我删除了/ usr / gtkada目录,但是libxcb-composite0现在仍然保留。 在同一目录/ usr / gnat中重新安装gtkada。
安装已完成,但是当链接示例程序testgtk时,发生了错误,并且未创建示例的可执行文件。 消息是:
git checkout master
[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- -包括-
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的顶部
sudo visudo
可能需要在此处,但是两个目录是否都位于同一目录(例如/usr/gnat
)中都没关系。
GTKADA-2019只是sudo ./doinstall
日志中有一些警告,但它们似乎很小。
应该执行#43和#44以上。默认环境设置不适用于Ubuntu(在gtkada-env.sh上方使用)。