【发布时间】:2019-09-19 23:23:32
【问题描述】:
我尝试构建包含许多目录和子目录的大型项目,其中一些用于创建不同的库。 使用 GNU make 使用相同的编译标志。大多数文件夹都已成功构建,但在特定文件夹中构建失败,并且出现许多错误,缺少某些定义。 例如,第一个错误是:
在 /usr/include/c++/4.8.2/cwchar:44:0 包含的文件中, 来自 /usr/include/c++/4.8.2/bits/postypes.h:40, 来自/usr/include/c++/4.8.2/iosfwd:40, 来自 /usr/include/c++/4.8.2/memory:72, ...
/usr/include/wchar.h:614:9: 错误:'__gnuc_va_list' 还没有 声明
__gnuc_va_list __arg
) 此错误来自此库中文件的简单#include,但对于任何文件和不同的标准库头文件都会发生相同类型的错误。
优势在于,在我从远程存储库中提取一些更新之前,该项目已完全成功构建。在此合并中,未对此文件进行任何更改。 尝试使用
g++ -E /usr/include/wchar.h | grep __gnuc_va_list | head -1
结果是:
typedef __builtin_va_list __gnuc_va_list;
正如我所见at this answer,__builtin_va_list 应该由 gcc 创建,并且它可能确实创建了它 - 否则许多其他文件无法编译
我不明白为什么会发生这种情况以及为什么只在这个文件夹/lib 中。
【问题讨论】: