2

我在尝试在 GPS 中编译 Ada 代码时遇到了一些麻烦。当我将其包含在包裹中时,GPS 显示丢失。我尝试使用 apt-get 安装,它确实如此,但错误仍然存​​在。接下来我能做什么?我在 x64 Ubuntu 12.04 上运行 GPS。

这是我收到的错误消息:

gprbuild -d -P/media/LUISMUNYOZ/QUINTO/str/pendulum/pendulum_portatil/pendulum.gpr
 -XEXTRA=True -XOPENGL=True -XGNOME=True -XBUILD=生产
 print_barrier_sync.adb contrib.gpr:1:09:警告:没有为语言“Xml”指定编译器,
 忽略其所有来源 x86_64-pc-linux-gnu-gcc -c lw.c 在包含的文件中
 /media/LUISMUNYOZ/QUINTO/str/pendulum/pendulum_portatil/gtkada/testgtk/opengl/lw.c:20:0:
 /media/LUISMUNYOZ/QUINTO/str/pendulum/pendulum_portatil/gtkada/testgtk/opengl/lw.h:23:18:
 致命错误:glib.h:没有此类文件或目录编译终止。
 gprbuild:* 编译阶段失败

[2012-11-21 13:24:47] 进程以状态 4 退出(经过时间:02.06 秒)[2012-11-21 13:24:56]
    无法在路径上找到可执行文件:svn SVN 错误:
[…]

此时触发错误:

#ifndef LW_H
#define LW_H

#include <glib.h>           <------------------------------------------
#include <GL/gl.h>

#define LW_MAX_POINTS   200
#define LW_MAX_NAME_LEN 500

该文件是 lw.h,它在包 GtkAda 中定义。我是从 GPS 页面下载的。

4

2 回答 2

2

我从未使用过 GtkAda。但是......我用谷歌搜索glib.h并得到了很多点击,建议对于普通的 C 构建应该使用 - 例如,来自这个 StackOverflow 问题-

# Sample Makefile
CFLAGS := $(shell pkg-config --cflags glib-2.0 gtk+-2.0)
LDFLAGS := $(shell pkg-config --libs glib-2.0 gtk+-2.0)

foo: foo.c
        $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS)

但是,我们在gprbuild这里谈论,所以也许GtkAda 文档是相关的?它说您需要包含with "gtkada";在您的 GNAT 项目文件中,并gtkada.gpr在您的位置ADA_PROJECT_PATH不存在时包含您的位置(请参阅 的输出gnatls -v)。

如果您已经这样做了,请向我们展示 GPR 文件。

于 2012-11-22T09:40:46.243 回答
2

我会追求@Simon 的方法,但是基于2.4.2 的变通方法。在您解决潜在问题时,使用命令行可能是一种临时替代方法。

当您使用 linux 时,这里有一个Makefile基本Interaction演示。

# Make shared, static or debug targets.
OS := $(shell uname)
OBJ = obj
TARGET = interaction
GNATMAKE = gnatmake -D $(OBJ)
CARGS = -cargs -O3 -gnatp -gnatwu -gnatf
BARGS = -bargs
LARGS = -largs
.PHONEY: clean cleaner cleanest

all:
    @echo ""
    @echo "Build targets:"
    @echo ""
    @echo "    shared     Use the shared Ada libraries."
    @echo "    static     Link the Ada libraries statically."
    @echo "    debug      Enable debugging."
    @echo ""
    @echo "Support targets:"
    @echo ""
    @echo "    clean      Remove *.ali *.o b~.*"
    @echo "    cleaner    Remove target, too."
    @echo "    cleanest   Remove build directory, too."
    @echo ""

shared: $(OBJ)
shared: INCLUDE = $(shell gtkada-config --cflags)
shared: BARGS += -shared
shared: LARGS += $(shell gtkada-config --libs)
shared: LARGS += -dead_strip
shared: *.ad[sb]
    @echo "building with shared libraries:"
    $(GNATMAKE) $(TARGET) $(INCLUDE) $(CARGS) $(BARGS) $(LARGS)

static: $(OBJ)
static: INCLUDE = $(shell gtkada-config --static --cflags)
static: BARGS += -static
static: LARGS += $(shell gtkada-config --static --libs)
static: LARGS += -dead_strip
static: *.ad[sb]
    $(GNATMAKE) $(TARGET) $(INCLUDE) $(CARGS) $(BARGS) $(LARGS)

debug: $(OBJ)
debug: INCLUDE = $(shell gtkada-config --static --cflags)
debug: BARGS += -static
debug: LARGS += $(shell gtkada-config --static --libs)
debug: *.ad[sb]
    $(GNATMAKE) -g $(TARGET) $(INCLUDE) $(LARGS)

$(OBJ):
    mkdir $(OBJ)

clean:
    ${RM} $(OBJ)/* b~*

cleaner: clean
    ${RM} $(TARGET)

cleanest: cleaner
    ${RM} -r $(OBJ) 

作为参考,这些软件包安装在 Ubuntu 12.04 上:

$ dpkg --get-selections | egrep "gnat|gtkada"
安装
gnat-4.6 安装
gnat-4.6-base 安装
gnat-gps 安装
gnat-gps-common 安装
gnat-gps-doc 安装
libgnat-4.6 安装
libgnatprj4.6 安装
libgnatvsn4.6 安装
libgtkada-bin 安装
libgtkada2.24.1 安装
libgtkada2.24.1-dev 安装
于 2012-11-22T14:02:06.417 回答