2012-11-20 36 views
2

我在尝试编译GPS中的Ada代码时遇到了一些麻烦。当我将GPS包含在软件包中时,GPS缺失。我尝试使用apt-get进行安装,但确实如此,但错误仍然存​​在。接下来我可以做什么?我在x64 Ubuntu 12.04上运行GPS。使用glib.h在GPS(Ada IDE)中编译时出现的问题

这里的错误消息我:

 
gprbuild -d -P/media/LUISMUNYOZ/QUINTO/str/pendulum/pendulum_portatil/pendulum.gpr 
-XEXTRA=True -XOPENGL=True -XGNOME=True -XBUILD=Production 
print_barrier_sync.adb contrib.gpr:1:09: warning: no compiler specified for language "Xml", 
ignoring all its sources x86_64-pc-linux-gnu-gcc -c lw.c In file included from 
/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: 
fatal error: glib.h: No such file or directory compilation terminated. 
gprbuild:* compilation phase failed 

[2012-11-21 13:24:47] process exited with status 4 (elapsed time: 02.06s) [2012-11-21 13:24:56] 
    Could not locate executable on path: svn SVN error: 
[…] 

错误触发在这一点上:

#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页面下载了它。

+1

让我们看看你有麻烦的代码,你得到了错误的信息。在你这样做之前,我们无法帮助你。 –

+0

@SimonWright对不起,我张贴从我的智能手机。我做了你所说的。感谢和问候。 – lluisu

回答

3

我会追求@西蒙的approach,但基于2.4.2. Using the command line的解决方法可能是一个临时替代方案,但您需要理清基本问题。

当你使用的是Linux,这里的基本Interaction演示一个Makefile

# 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      install 
gnat-4.6     install 
gnat-4.6-base    install 
gnat-gps     install 
gnat-gps-common    install 
gnat-gps-doc    install 
libgnat-4.6     install 
libgnatprj4.6    install 
libgnatvsn4.6    install 
libgtkada-bin    install 
libgtkada2.24.1    install 
libgtkada2.24.1-dev   install 
2

我从来没有用过GtkAda。但是...我一派glib.h,并得到许多命中,这对于普通的C构建一个应该使用 - 例如,从this StackOverflow question -

# 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 [email protected] $(LDFLAGS) 

然而,我们在这里谈论gprbuild,所以也许GtkAda documentation相关?它说,你需要在你的GNAT项目文件with "gtkada";,并包括gtkada.gpr位置上的ADA_PROJECT_PATH,如果它不存在的话(见gnatls -v输出)。

如果你已经这样做了,请告诉我们的GPR文件。