GPRBuild无法编译C文件

时间:2019-03-09 11:41:32

标签: c ada gnat gprbuild

我已升级到GNAT社区2018(GNAT GPL 2017一切正常。)我有这个项目文件:

with "opengl";

library project OpenGL.Soil is
   for Library_Name use "SoilAda";

   for Languages use ("ada", "c");

   for Source_Dirs use ("src/soil");

   -- snip compiler config
end OpenGL.Soil;

现在src/soil中有两个.ads.adb文件以及.h.c文件。以前,该项目文件编译了所有文件,并将它们链接在一起就可以了。从GNAT Community 2018开始,此文件仅编译Ada源,而不编译C源。

我尝试过的事情:

  • 确保GNAT社区随附的GCC仍支持编译C。是的。
  • 为C分别为各个文件结尾明确定义Naming的软件包设置Spec_SuffixImplementation_Suffix
  • 明确指定Source_Files并将所有Ada和C文件放入其中。

无论我做什么,GPRBuild在被调用时都不会编译C文件(导致链接器错误)。即使明确指定了C文件,也没有错误或警告输出。

如何使GPRBuild再次编译C文件?

1 个答案:

答案 0 :(得分:5)

原因是,仍然存在来自先前编译器的32位目标文件。 GPRBuild不会重新编译这些文件,但是也没有尝试链接它们(可能会失败),在项目上调用gprclean -r并再次进行编译来修复它。