1

我正在尝试使用 GPS IDE 作为我在 OS X El Capitan 上的替代开发工具(远离 OS X 10.5 Xcode 3.0)。但我偶然发现了一个奇怪的错误:

gnat bind myprog.bexch
gnatbind: Cannot find: myprog.bexch.ali
gprbuild: unable to bind myprog.adb [2016-01-20 18:49:07] process
exited with status 4, 100% (13/13), elapsed time: 04.77s

在我的目录中,我只能找到 myprog.bexch。看起来 gnatbind 不会产生 myprog.bexch.ali

我的 GPR 看起来像这样:

project Amygdala_Cortex is

    for Object_Dir use "Build/";
    for Exec_Dir use "Build/Debug/";
    for Library_Name use "";
    for Library_Ali_Dir use "";
    for Library_Kind use "static";


    package Compiler is
        for Default_Switches ("ada") use ("-g", "-O2", "-I/opt/local/include/aws", "-I/opt/local/include/aws/components");
    end Compiler;

    package Binder is
        for Driver ("ada") use "/usr/local/gnat/bin/gnatbind";
    end Binder;

    package Linker is
        for Linker_Options use ();
    end Linker;

    for Main use ("amygdala_cortex.adb");

end Amygdala_Cortex;

显然,我的目录中没有 gprbind 。

我是否在 GPR 中做错了什么或遗漏了什么?

我在 El Capitan (10.11.2) 上使用 gnat-gpl-2015-x86_64-darwin (GNAT GPL 2015 (20150428-49))。

谢谢。

4

2 回答 2

4

我认为您应该尝试注释掉该Binder'Driver属性。让 gprbuild 根据需要自行查找并运行 gnatbind。它会通过一个名为 的工具在您的 PATH 上找到它,该工具gprconfig会生成一个配置文件(通常是auto.cgpr)。

您正在使用 AWS。不要使用-I编译器的开关,而是简单地添加

with "aws";

在您的项目中,这将为编译器、链接器、...添加相关开关

于 2016-01-20T12:52:32.597 回答
0

谢谢您的帮助。

这是我的新 GPR,以防有人遇到类似问题:

with "aws";

project myprog is

   for Object_Dir use "Build/";
   for Exec_Dir use "Build/Debug/";
   for Library_Name use "";
   for Library_Ali_Dir use "";
   for Library_Kind use "static";

   package Compiler is
      for Default_Switches ("ada") use ("-g", "-O2");
   end Compiler;


   package Linker is
      for Linker_Options use ();
   end Linker;

   for Main use ("myprog.adb");

end myprog;
于 2016-01-20T14:05:32.183 回答