Ubuntu-18.04.1 上的 gtkada-2018 Adacore 安装问题
gtkada-2018 Adacore installation Issue on Ubuntu-18.04.1
我正在 Ubuntu 18.04.1 桌面(全新安装)上安装 gtkada-2018 (Adacore),但它在链接时导致 libxcb-xlib.so.0 警告。
谁能帮我解决这个问题?
我首先安装了 GNAT Community
须藤./gnat-community-2018-20180528-x86_64-linux-bin
将目录设置为 /usr/gnat
在这里,带 GPS 的 Ada 工作正常。
接下来,gtkada-community-community-2018-x86_64-linux-bin
命令是$sudo ./doinstall
-----long build messages----
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 [link] main.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)
[2018-11-15 20:43:28] process terminated successfully, elapsed time: 01.00s
- 100% 可重现上述症状。
- gtkada-2017 没有发生这个问题。
您好像漏了一个包裹。尝试安装:
sudo apt install libxcb-composite0
我正在根据您的新 post:
编辑我的答案
可能只是配置问题,GtkAda 没有找到 Ada 编译器。我发现 this post 建议 运行 gprbuild with -v ,然后 gprconfig with -v 检查配置。
还有一件事:我了解到您是通过下载的文件安装 GNAT 的。为什么不尝试从 Ubuntu 存储库安装它呢?
谢谢,我试过了,但是安装提前退出如下:
- GNAT 安装在 /usr/gnat/
- 此命令:sudo apt install libxcb-composite0
Gtkada 安装在 /usr/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...none 需要
正在检查 gprbuild.../usr/bin/gprbuild
正在检查 gprinstall.../usr/bin/gprinstall
正在检查您的 gnat 编译器是否可以使用一个简单示例...错误:未找到语言 'ada' 的本机编译器,默认运行时
conftest.gpr:1:09: 没有为这个项目定义语言
gprbuild:"conftest.gpr" 处理失败
没有
配置:错误:/usr/bin/gprbuild编译时测试失败!检查您的配置。
发生错误。请参阅 install.log.
我尝试了 GPS 并用一个非常简单的程序测试了 Ada,它正常构建和工作。
我删除了/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”
我找到了解决方案。
我写了所有的故事来从头开始在 Ubuntu 18.04.1 中安装 gnat-2018 和 gtkada-2018 (Adacore)。
准备
#1--#8 只是为了我的记忆。
- 从头开始安装 Ubuntu 18.04.1
- 安装google-chrome
sudo apt install chromium-browser
sudo apt install synaptic
gsettings set org.gnome.desktop.session idle-delay 1800
sudo apt update
sudo apt upgrade
重启OS
sudo apt install make
sudo apt install gcc
sudo apt install gprbuild
sudo apt update
sudo apt upgrade
至此,准备工作已经完成。
GNAT 安装
- 从 https://www.adacore.com/download/more 下载文件
Gnat-community-2018-20180528-x86_64-linux-bin
- 在Nautilus中设置文件可执行+x或勾选属性-permission-Execute
不使用 sudo 执行 Gnat-community-2018-20180528-x86_64-linux-bin
sudo causes a warning in the installation process, then do without sudo in terminal, or just
double-click the file in Nautilus.
需要安装目录,输入例如/usr/gnat
- 几分钟后,安装向导完成。
- 设置路径。
例如export PATH=/usr/gnat/bin:$PATH
例如在 ~/.bashrc
现在,GPS 可以工作了,您可以使用除 gtkada 之外的所有 Ada 功能。
- 关闭终端
gtkada 准备
如果你想安装在同一目录下,例如/usr/gnat,然后跳过下一个 #21。
- gtkada 在另一个目录中
If you want to install gtkada in another directory (e.g. /usr/gtkada), do in Terminal:
sudo visudo
Add the same PATH in the "Default" line as below (e.g. /usr/gnat/bin):
Defaults secure_path="/usr/gnat/bin:/usr/local/sbin:...
To save and quit in visudo
are tricky, do as follows:
^o BS BS BS BS Enter Y Y ^x
Enter to check again to make sure, sudo visudo
, then exit with ^x
after the checking.
从下一步开始,获取丢失的文件 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 并转到 link www.pclinuxos.com/pclinuxos/apt/pclinuxos/64bit/RPMS.x86_64/libxcb-1.12-4pclos2017.x86_64.rpm
- 下载ftp.ntua.grlibxcb-1.12-4pclos2017.x86_64.rpm
- 设置文件可执行:
libxcb-1.12-4pclos2017.x86_64.rpm (159.9kB).
安装可以将RPM文件转换为DEB文件的alien。
sudo apt install alien
从 RPM 转换为 DEB
sudo alien 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 18:12 libxcb-1.12-4pclos2017.x86_64.rpm
-rw-r--r-- 1 root root 152024 Jan 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 root root 31 Dec 25 16:22 libxcb-xlib.so.0 -> ../../usr/lib64/libxcb.so.1.1.0
lrwxrwxrwx 1 root root 31 Dec 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-link.
现在,只保存 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 MiB 2018 年 5 月 24 日
- 设置为可执行文件
- 提取文件
- 复制文件libxcb.so.1.1.0到gtk-bin/lib64目录:
Downloads/gtkada-community-community-2018-x86_64-linux-bin/gtk-bin/lib64
- 设置libxcb.so.1.1.0可执行文件
- 设置符号-link
gtk-bin/lib64$sudo ln -s ./libxcb.so.1.1.0 ./libxcb-xlib.so.0
- 检查是否创建了 sym-link
/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 root root 17 Dec 25 22:18 libxcb-xlib.so.0 -> ./libxcb.so.1.1.0
- 再次复制libxcb.so.1.1.0到gtk-bin/lib目录:
Downloads/gtkada-community-community-2018-x86_64-linux-bin/gtk-bin/lib
- 设置libxcb.so.1.1.0可执行文件
- 设置符号-link
gtk-bin/lib$sudo ln -s ./libxcb.so.1.1.0 ./libxcb-xlib.so.0
- 检查是否创建了 sym-link
/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 root root 17 Dec 25 22:18 libxcb-xlib.so.0 -> ./libxcb.so.1.1.0
现在你已经准备好了所有的设置。
gtkada 安装
- Downloads/gtkada-community-community-2018-x86_64-linux-bin$
sudo ./doinstall
设置安装目录/usr/gnat(相同)或/usr/gtkada 否则。
几分钟后,安装完成。
设置 gtkada 环境
不要关注安装程序的评论,它们是针对其他 OS 的评论。
现在,~/.bashrc 的底部是:
export PATH=/usr/gnat/bin:$PATH
像这样再添加一行
. ./gtkada-env.sh
(注:点-space-点)
使用以下文本创建一个文本文件 ~/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_BACKEND=内存
GLADE_BASE_DIR=$前缀
GPR_PROJECT_PATH=$prefix/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
- ~/ada/simplegtkada$
gps
- "create new project"、"GtkAda"、"Simple Window"可以做一个简单的Hello world。
- Build 和 运行 可以检查功能。
- 检查终端应用程序执行是否没有输出任何错误:
- ~/ada/simplegtkada/obj$
./main
使用 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 文件都应该重新编译和 linked。
- 尝试
./testgtk
并检查功能。
- ~/Downloads/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: 警告:形式参数 "Context" 未被引用
gtkada-canvas_view.ads:1992:07: 警告:形式参数 "View" 未被引用
gtkada 2018版的福利
它不再显示通常在 2016 和 2017 版本中的错误消息,例如:
Gtk-Message: 加载模块失败 "unity-gtk-module"
Gtk-Message: 加载模块失败 "canberra-gtk-module"
在启动 GPS 和 gtkada 应用程序时。这让我感觉好多了。
我确认 Ubuntu 18.04.02 上的最新 Adacore GNAT-2019 和 GTKADA-2019 修复了大部分安装问题。
GNAT-2019 与 2018 一样只需双击即可。
将 /usr/gnat/bin:
添加到 PATH
的顶部
sudo visudo
如果 GTKADA 安装在不同的目录,可能需要这里,但如果两者在同一目录(例如 /usr/gnat
)。
GTKADA-2019 只是 sudo ./doinstall
日志中有一些警告,但看起来很小。
上面的#43 和#44 应该完成。默认环境设置不适用于Ubuntu(在gtkada-env.sh之上使用)。
我正在 Ubuntu 18.04.1 桌面(全新安装)上安装 gtkada-2018 (Adacore),但它在链接时导致 libxcb-xlib.so.0 警告。 谁能帮我解决这个问题?
我首先安装了 GNAT Community
须藤./gnat-community-2018-20180528-x86_64-linux-bin 将目录设置为 /usr/gnat 在这里,带 GPS 的 Ada 工作正常。
接下来,gtkada-community-community-2018-x86_64-linux-bin
命令是
$sudo ./doinstall
-----long build messages----
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 [link] main.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) [2018-11-15 20:43:28] process terminated successfully, elapsed time: 01.00s
- 100% 可重现上述症状。
- gtkada-2017 没有发生这个问题。
您好像漏了一个包裹。尝试安装:
sudo apt install libxcb-composite0
我正在根据您的新 post:
编辑我的答案可能只是配置问题,GtkAda 没有找到 Ada 编译器。我发现 this post 建议 运行 gprbuild with -v ,然后 gprconfig with -v 检查配置。
还有一件事:我了解到您是通过下载的文件安装 GNAT 的。为什么不尝试从 Ubuntu 存储库安装它呢?
谢谢,我试过了,但是安装提前退出如下:
- GNAT 安装在 /usr/gnat/
- 此命令:sudo apt install libxcb-composite0
Gtkada 安装在 /usr/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...none 需要
正在检查 gprbuild.../usr/bin/gprbuild
正在检查 gprinstall.../usr/bin/gprinstall
正在检查您的 gnat 编译器是否可以使用一个简单示例...错误:未找到语言 'ada' 的本机编译器,默认运行时 conftest.gpr:1:09: 没有为这个项目定义语言 gprbuild:"conftest.gpr" 处理失败
没有
配置:错误:/usr/bin/gprbuild编译时测试失败!检查您的配置。
发生错误。请参阅 install.log.
我尝试了 GPS 并用一个非常简单的程序测试了 Ada,它正常构建和工作。
我删除了/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”
我找到了解决方案。
我写了所有的故事来从头开始在 Ubuntu 18.04.1 中安装 gnat-2018 和 gtkada-2018 (Adacore)。
准备
#1--#8 只是为了我的记忆。
- 从头开始安装 Ubuntu 18.04.1
- 安装google-chrome
sudo apt install chromium-browser
sudo apt install synaptic
gsettings set org.gnome.desktop.session idle-delay 1800
sudo apt update
sudo apt upgrade
重启OS
sudo apt install make
sudo apt install gcc
sudo apt install gprbuild
sudo apt update
sudo apt upgrade
至此,准备工作已经完成。
GNAT 安装
- 从 https://www.adacore.com/download/more 下载文件 Gnat-community-2018-20180528-x86_64-linux-bin
- 在Nautilus中设置文件可执行+x或勾选属性-permission-Execute
不使用 sudo 执行 Gnat-community-2018-20180528-x86_64-linux-bin
sudo causes a warning in the installation process, then do without sudo in terminal, or just double-click the file in Nautilus.
需要安装目录,输入例如/usr/gnat
- 几分钟后,安装向导完成。
- 设置路径。
例如export PATH=/usr/gnat/bin:$PATH
例如在 ~/.bashrc
现在,GPS 可以工作了,您可以使用除 gtkada 之外的所有 Ada 功能。
- 关闭终端
gtkada 准备
如果你想安装在同一目录下,例如/usr/gnat,然后跳过下一个 #21。
- gtkada 在另一个目录中
If you want to install gtkada in another directory (e.g. /usr/gtkada), do in Terminal:
sudo visudo
Add the same PATH in the "Default" line as below (e.g. /usr/gnat/bin):
Defaults secure_path="/usr/gnat/bin:/usr/local/sbin:...
To save and quit in
visudo
are tricky, do as follows:
^o BS BS BS BS Enter Y Y ^x
Enter to check again to make sure,sudo visudo
, then exit with^x
after the checking.
从下一步开始,获取丢失的文件 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 并转到 link www.pclinuxos.com/pclinuxos/apt/pclinuxos/64bit/RPMS.x86_64/libxcb-1.12-4pclos2017.x86_64.rpm
- 下载ftp.ntua.grlibxcb-1.12-4pclos2017.x86_64.rpm
- 设置文件可执行:
libxcb-1.12-4pclos2017.x86_64.rpm (159.9kB). 安装可以将RPM文件转换为DEB文件的alien。
sudo apt install alien
从 RPM 转换为 DEB
sudo alien 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 18:12 libxcb-1.12-4pclos2017.x86_64.rpm
-rw-r--r-- 1 root root 152024 Jan 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 root root 31 Dec 25 16:22 libxcb-xlib.so.0 -> ../../usr/lib64/libxcb.so.1.1.0
lrwxrwxrwx 1 root root 31 Dec 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-link.
现在,只保存 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 MiB 2018 年 5 月 24 日
- 设置为可执行文件
- 提取文件
- 复制文件libxcb.so.1.1.0到gtk-bin/lib64目录:
Downloads/gtkada-community-community-2018-x86_64-linux-bin/gtk-bin/lib64 - 设置libxcb.so.1.1.0可执行文件
- 设置符号-link
gtk-bin/lib64$sudo ln -s ./libxcb.so.1.1.0 ./libxcb-xlib.so.0
- 检查是否创建了 sym-link
/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 root root 17 Dec 25 22:18 libxcb-xlib.so.0 -> ./libxcb.so.1.1.0 - 再次复制libxcb.so.1.1.0到gtk-bin/lib目录:
Downloads/gtkada-community-community-2018-x86_64-linux-bin/gtk-bin/lib - 设置libxcb.so.1.1.0可执行文件
- 设置符号-link
gtk-bin/lib$sudo ln -s ./libxcb.so.1.1.0 ./libxcb-xlib.so.0
- 检查是否创建了 sym-link
/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 root root 17 Dec 25 22:18 libxcb-xlib.so.0 -> ./libxcb.so.1.1.0
现在你已经准备好了所有的设置。
gtkada 安装
- Downloads/gtkada-community-community-2018-x86_64-linux-bin$
sudo ./doinstall
设置安装目录/usr/gnat(相同)或/usr/gtkada 否则。
几分钟后,安装完成。
设置 gtkada 环境
不要关注安装程序的评论,它们是针对其他 OS 的评论。
现在,~/.bashrc 的底部是:
export PATH=/usr/gnat/bin:$PATH
像这样再添加一行
. ./gtkada-env.sh
(注:点-space-点)使用以下文本创建一个文本文件 ~/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_BACKEND=内存
GLADE_BASE_DIR=$前缀
GPR_PROJECT_PATH=$prefix/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
- ~/ada/simplegtkada$
gps
- "create new project"、"GtkAda"、"Simple Window"可以做一个简单的Hello world。
- Build 和 运行 可以检查功能。
- 检查终端应用程序执行是否没有输出任何错误:
- ~/ada/simplegtkada/obj$
./main
使用 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 文件都应该重新编译和 linked。
- 尝试
./testgtk
并检查功能。 - ~/Downloads/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: 警告:形式参数 "Context" 未被引用
gtkada-canvas_view.ads:1992:07: 警告:形式参数 "View" 未被引用
gtkada 2018版的福利
它不再显示通常在 2016 和 2017 版本中的错误消息,例如:
Gtk-Message: 加载模块失败 "unity-gtk-module"
Gtk-Message: 加载模块失败 "canberra-gtk-module"
在启动 GPS 和 gtkada 应用程序时。这让我感觉好多了。
我确认 Ubuntu 18.04.02 上的最新 Adacore GNAT-2019 和 GTKADA-2019 修复了大部分安装问题。
GNAT-2019 与 2018 一样只需双击即可。
将 /usr/gnat/bin:
添加到 PATH
sudo visudo
如果 GTKADA 安装在不同的目录,可能需要这里,但如果两者在同一目录(例如 /usr/gnat
)。
GTKADA-2019 只是 sudo ./doinstall
日志中有一些警告,但看起来很小。
上面的#43 和#44 应该完成。默认环境设置不适用于Ubuntu(在gtkada-env.sh之上使用)。