在 Mac os 上编译 .adb 后 Gnatmake 编译错误

Gnatmake compilation error after compiling .adb on Mac os

我刚刚安装了带有 GPS 的 Dwarvin 版本的 AdaCore 社区编译器 (gnat-community-2018-20180523-arm-elf-darwin-bin.dmg)。使用 adacore 中的相应安装程序。我还设法在我的起始脚本中添加了 gnat 的路径。到这里一切正常,gnat --version return 合适的版本等

但是当我想使用 gnatmake filename.adb

编译 .adb 文件时
user$ gnatmake filename.adb

gcc -c filename.adb
gcc: error trying to exec 'gnat1': execvp: No such file or directory
gnatmake: "filename.adb" compilation error

甚至在使用 gnatmake -c filename.adb 之后我得到

gcc -c filname.adb
gcc: error trying to exec 'gnat1': execvp: No such file or directory
gnatmake: "filename.adb" compilation error

我向我的教授寻求帮助,他说使用提供的 VM(Windows)我只是想避免使用 VM。请帮我解决这个错误。

在 运行 下面的命令之后 gnatmake filname.adb -cargs -c 下面出现了。

gcc -c -v filename.adb
Using built-in specs.
COLLECT_GCC=/opt/gps//bin/gcc
Target: x86_64-apple-darwin16.7.0
Configured with: ../src/configure --enable-languages=ada,c,c++,objc --enable-lto --with-stage1-ldflags=-static-libstdc++ --with-boot-ldflags=-static-libstdc++ --disable-libcilkrts --with-bugurl=URL:mailto:report@adacore.com --disable-nls --without-libiconv-prefix --disable-libstdcxx-pch --disable-libada --enable-checking=release --disable-multilib --with-mpfr=/gnatmail/sandbox/community/x86_64-darwin/mpfr_stable-c/install --with-gmp=/gnatmail/sandbox/community/x86_64-darwin/gmp_stable-c/install --with-mpc=/gnatmail/sandbox/community/x86_64-darwin/mpc_stable-c/install --with-build-time-tools=/gnatmail/sandbox/community/x86_64-darwin/gcc_current-c/build/buildtools/bin --prefix=/gnatmail/sandbox/community/x86_64-darwin/gcc_current-c/pkg --build=x86_64-apple-darwin16.7.0
Thread model: posix
gcc version 7.3.1 20180524 (for GNAT Community 2018 20180523) (GCC) 
COLLECT_GCC_OPTIONS='-gnatea' '-c' '-v' '-gnatez' '-mtune=core2' '-mmacosx-version-min=10.14.2'
 gnat1 -quiet -dumpbase filename.adb -auxbase filename -gnatez -gnatea -gnatez -mtune=core2 -mmacosx-version-min=10.14.2 -fPIC filename.adb -o /var/folders/9r/52d5kqc906v4phl9jgjrxdlr0000gn/T//ccQlDd19.s
gcc: error trying to exec 'gnat1': execvp: No such file or directory
gnatmake: "filename.adb" compilation error

现在我们可以看到编译器是如何报错的(感谢问题中的更新),看来您遇到了安装问题。

在这里,我得到(编辑下来删除不太重要的部分)

[...]
COLLECT_GCC=/opt/gnat-ce-2018//bin/gcc

你有/opt/gps//bin/gcc,所以你的"prefix"(要在下面找到安装)是/opt/gps,我的是/opt/gnat-ce-2018(我没有知道为什么那里有两个斜杠,似乎无关紧要)。那么,

[...]
 /opt/gnat-ce-2018/bin/../libexec/gcc/x86_64-apple-darwin16.7.0/7.3.1/gnat1 -quiet -dumpbase [...]

你只有 gnat1。所以,你应该有一个文件/opt/gps/libexec/gcc/x86_64-apple-darwin16.7.0/7.3.1/gnat1,并且它应该是可执行的。

我会尝试重新安装。