gpt4 book ai didi

c - Gnu Make 在打开头文件中的 Pren 时抛出错误

转载 作者:太空宇宙 更新时间:2023-11-04 06:57:15 25 4
gpt4 key购买 nike

我从 GNU Make 收到一个奇怪的“预期声明”错误。

inc/pub/teos_config.h:22:28: error: expected declaration specifiers or '...' before '(' token
#define TEOS_SYSUINT ((unsigned)TEOS_SYSINT)
^

这是文件...

#ifndef __TEOS_CONFIG_H__
#define __TEOS_CONFIG_H__

#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif

#define TEOS_SYSINT int32_t
#define TEOS_SYSUINT ((unsigned)TEOS_SYSINT)

#ifdef __cplusplus
}
#endif

#endif // __TEOS_CONFIG_H__

非常简单。我是 GNU Make 的新手,所以也许我错过了那里的一个开关?

最佳答案

错误是由 C 编译器发出的,而不是由 make 本身发出的。它反射(reflect)了源代码中的错误。

此外,错误不直接出现在您提供的 header 中,而是出现在使用该 header 中定义的 TEOS_SYSUINT 宏的 C 源文件中。您已经删除了整个多行错误消息中说明实际错误位置的部分。尽管如此,我可以相当自信地说,当您尝试将该宏用作变量或函数定义中的类型说明符时,就会出现问题。例如,

TEOS_SYSUINT x;

...扩展为...

((unsigned)int32_t) x;

...这不是变量 x 的有效声明。

不清楚为什么不这样定义宏,而是:

#define TEOS_SYSUINT       uint32_t

更改为很可能会解决您询问的问题。

关于c - Gnu Make 在打开头文件中的 Pren 时抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42699441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com