未知类型名称“uint32_t”,MinGW

发布于 2024-12-28 06:09:51 字数 882 浏览 0 评论 0原文

我收到错误未知类型名称'uint32_t'并包含stdint.huint8_t 不会产生错误,uint16_t 也不会。

我正在使用 MinGW 和以下 make-lines:

# Build for Windows under MinGW
#MINGWDBG= -DDEBUG -O0
MINGWDBG= -DNDEBUG -Os
#MINGWOPT= -W -Wall -mthreads -Wl,--subsystem,console $(MINGWDBG) -DHAVE_STDINT
MINGWOPT= -W -Wall -mthreads -Wl,--subsystem,windows $(MINGWDBG)
mingw:
    windres win32\res.rc win32\res.o
    gcc $(MINGWOPT) mongoose.c -lws2_32 \
        -shared -Wl,--out-implib=$(PROG).lib -o $(PROG).dll
    gcc $(MINGWOPT) mongoose.c main.c win32\res.o -lws2_32 -ladvapi32 \
        -o $(PROG).exe

代码:

uint32_t function(void) {
    return VALUE;
}

并且包括:

#include <stdio.h>
#include <string.h>
#include "mongoose.h"
#include "main.h"
#include <stdint.h>

I get the error unknown type name 'uint32_t' and included stdint.h. uint8_t doesn't produce an error, neither does uint16_t.

I'm using MinGW and the following make-lines:

# Build for Windows under MinGW
#MINGWDBG= -DDEBUG -O0
MINGWDBG= -DNDEBUG -Os
#MINGWOPT= -W -Wall -mthreads -Wl,--subsystem,console $(MINGWDBG) -DHAVE_STDINT
MINGWOPT= -W -Wall -mthreads -Wl,--subsystem,windows $(MINGWDBG)
mingw:
    windres win32\res.rc win32\res.o
    gcc $(MINGWOPT) mongoose.c -lws2_32 \
        -shared -Wl,--out-implib=$(PROG).lib -o $(PROG).dll
    gcc $(MINGWOPT) mongoose.c main.c win32\res.o -lws2_32 -ladvapi32 \
        -o $(PROG).exe

Code:

uint32_t function(void) {
    return VALUE;
}

And the includes:

#include <stdio.h>
#include <string.h>
#include "mongoose.h"
#include "main.h"
#include <stdint.h>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

司马昭之心 2025-01-04 06:09:51

如果

#include "main.h"
#include <stdint.h>

不起作用,但

#include <stdint.h>
#include "main.h"

确实起作用,则您的 main.h 文件可能依赖于 stdint.h。这意味着您应该将 #include 添加到 main.h 中。

If

#include "main.h"
#include <stdint.h>

didn't work, but

#include <stdint.h>
#include "main.h"

did, it is likely that your main.h file relies on stdint.h. That means you should add #include <stdint.h> to main.h.

有深☉意 2025-01-04 06:09:51

为了回答我自己的问题,改变包含的顺序似乎可以解决问题。

To answer my own question, changing the order of the includes seemed to do the trick.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文