GPRBuild не компилирует файлы C
Я обновился до 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, все еще поддерживает компиляцию C. Да, это так.
- Явно определенный
Naming
настройка пакетаSpec_Suffix
а такжеImplementation_Suffix
для C до соответствующих окончаний файла. - Явно указано
Source_Files
и поместите все файлы Ada и C в него.
Независимо от того, что я сделал, GPRBuild при запуске не будет компилировать файлы C (что приведет к ошибкам компоновщика). Нет никаких ошибок или предупреждений относительно файлов C, даже если они указаны явно.
Как я могу заставить GPRBuild снова скомпилировать файлы C?
1 ответ
Причина была в том, что все еще оставались 32-битные объектные файлы от предыдущего компилятора. GPRBuild не перекомпилировал их, но и не пытался связать их (что не удалось бы), вызвав gprclean -r
на проекте и компиляции снова исправили.