GPRBuild不编译C文件

问题描述 投票:3回答:1

我升级到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源。

我尝试过的事情:

  • 确保GCC与GNAT社区一起仍然支持编译C.是的。
  • 明确定义Naming包将qzxswpoi和Spec_Suffix设置为C到各自的文件结尾。
  • 明确指定Implementation_Suffix并将所有Ada和C文件放入其中。

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

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

c ada gnat gprbuild
1个回答
5
投票

原因是前面的编译器仍然存在32位目标文件。 GPRBuild没有重新编译那些,但也没有尝试链接它们(这会失败),在项目上调用Source_Files并再次编译修复它。

© www.soinside.com 2019 - 2024. All rights reserved.