GPRBuild 不编译 C 文件
GPRBuild does not compile C files
我升级到 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 源代码。
我尝试过的事情:
- 确保随 GNAT 社区一起提供的 GCC 仍然支持编译 C。是的。
- 明确定义
Naming
包设置 Spec_Suffix
和 Implementation_Suffix
C 到相应的文件结尾。
- 明确指定
Source_Files
并将所有 Ada 和 C 文件放入其中。
无论我做什么,调用 GPRBuild 时都不会编译 C 文件(导致链接器错误)。即使明确指定,也没有关于 C 文件的错误或警告输出。
如何让 GPRBuild 再次编译 C 文件?
原因是之前编译器的 32 位目标文件仍然存在。 GPRBuild 没有重新编译那些但也没有尝试 link 它们(这会失败),在项目上调用 gprclean -r
并再次编译修复它。
我升级到 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 源代码。
我尝试过的事情:
- 确保随 GNAT 社区一起提供的 GCC 仍然支持编译 C。是的。
- 明确定义
Naming
包设置Spec_Suffix
和Implementation_Suffix
C 到相应的文件结尾。 - 明确指定
Source_Files
并将所有 Ada 和 C 文件放入其中。
无论我做什么,调用 GPRBuild 时都不会编译 C 文件(导致链接器错误)。即使明确指定,也没有关于 C 文件的错误或警告输出。
如何让 GPRBuild 再次编译 C 文件?
原因是之前编译器的 32 位目标文件仍然存在。 GPRBuild 没有重新编译那些但也没有尝试 link 它们(这会失败),在项目上调用 gprclean -r
并再次编译修复它。