GPRBuild не компилирует файлы C - PullRequest
3 голосов
/ 09 марта 2019

Я обновился до GNAT Community 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 Community, все еще поддерживает компиляцию C.Да, это так.
  • Явно определены Naming настройки пакета Spec_Suffix и Implementation_Suffix для C для соответствующих окончаний файлов.
  • Явно указаны Source_Files и помещены все файлы Ada и Cв нем.

Независимо от того, что я сделал, GPRBuild при вызове не будет компилировать файлы C (что приведет к ошибкам компоновщика).Нет ошибок или предупреждений относительно файлов C, даже если они указаны явно.

Как я могу заставить GPRBuild снова компилировать файлы C?

1 Ответ

5 голосов
/ 09 марта 2019

Причина была в том, что все еще оставались 32-битные объектные файлы от предыдущего компилятора. GPRBuild не перекомпилировал их, но также не пытался связать их (что могло бы привести к сбою), вызвав gprclean -r в проекте и снова компилировав, исправив его.

...