Nept-epslion 2023-08-11 22:01 采纳率: 100%
浏览 45
已结题

CODE::BLOCKS下LVGL模拟工程编译报错

输出如下:

D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|69|error: unknown type name 'In_opt'; did you mean '_ino_t'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|70|error: unknown type name 'In'; did you mean '_ino_t'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|71|error: unknown type name 'In'; did you mean '_ino_t'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|72|error: unknown type name 'Out'|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|73|error: unknown type name 'Out'|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|86|error: unknown type name 'In'; did you mean '_ino_t'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|115|error: unknown type name 'HTOUCHINPUT'; did you mean 'PTOUCHINPUT'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|130|error: unknown type name 'HTOUCHINPUT'; did you mean 'PTOUCHINPUT'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|138|error: unknown type name 'In'; did you mean '_ino_t'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|173|warning: 'lv_win32_quit_signal' initialized and declared 'extern'|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|175|warning: 'lv_win32_pointer_device_object' initialized and declared 'extern'|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|176|warning: 'lv_win32_keypad_device_object' initialized and declared 'extern'|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|177|warning: 'lv_win32_encoder_device_object' initialized and declared 'extern'|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c||In function 'lv_win32_init':|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|250|warning: implicit declaration of function 'CreateEventExW'; did you mean 'CreateEventW'? [-Wimplicit-function-declaration]|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|250|warning: assignment to 'HANDLE' {aka 'void *'} from 'int' makes pointer from integer without a cast [-Wint-conversion]|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|516|error: unknown type name 'HTOUCHINPUT'; did you mean 'PTOUCHINPUT'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|540|error: unknown type name 'HTOUCHINPUT'; did you mean 'PTOUCHINPUT'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|561|error: unknown type name 'In'; did you mean '_ino_t'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c||In function 'lv_win32_window_message_callback':|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|818|error: 'WM_TOUCH' undeclared (first use in this function); did you mean 'WM_TOUCHUP'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|818|note: each undeclared identifier is reported only once for each function it appears in|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|821|error: unknown type name 'HTOUCHINPUT'; did you mean 'PTOUCHINPUT'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|821|error: 'HTOUCHINPUT' undeclared (first use in this function); did you mean 'PTOUCHINPUT'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|826|warning: implicit declaration of function 'lv_win32_get_touch_input_info'; did you mean 'lv_win32_register_touch_window'? [-Wimplicit-function-declaration]|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|835|warning: implicit declaration of function 'TOUCH_COORD_TO_PIXEL'; did you mean 'LV_COORD_IS_PX'? [-Wimplicit-function-declaration]|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|856|warning: implicit declaration of function 'lv_win32_close_touch_input_handle'; did you mean 'lv_win32_register_touch_window'? [-Wimplicit-function-declaration]|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|860|error: 'WM_DPICHANGED' undeclared (first use in this function); did you mean 'WM_USERCHANGED'?|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c||In function 'lv_win32_window_thread_entrypoint':|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|959|warning: passing argument 2 of 'LoadCursorW' from incompatible pointer type [-Wincompatible-pointer-types]|
c:\mingw\include\winuser.h|3999|note: expected 'LPCWSTR' {aka 'const short unsigned int *'} but argument is of type 'CHAR *' {aka 'char *'}|
D:\我的文档\Code\lv_sim_codeblocks_win\lv_drivers\win32drv\win32drv.c|988|warning: implicit declaration of function 'lv_win32_get_dpi_for_window'; did you mean 'lv_win32_register_touch_window'? [-Wimplicit-function-declaration]|
||=== 构建 finished: 16 error(s), 11 warning(s) (0 分, 3 秒) ===|

  • 写回答

1条回答 默认 最新

  • Gavana. Java领域新星创作者 2023-08-11 23:04
    关注

    从你的输出中,我发现你的错误主要有以下几类:

    未知类型名 (unknown type name):这种错误通常是因为缺少了某个头文件或者宏定义,导致编译器无法识别某个类型。比如 In_opt, In, Out, HTOUCHINPUT 等类型都是在 Windows 的头文件中定义的,如果你没有正确地包含这些头文件,就会出现这种错误。你需要检查你的代码中是否有包含以下的头文件:
    #include <windows.h>
    #include <VersionHelpers.h>
    #include <winuser.h>

    如果没有,你需要添加它们到你的代码中。如果有,你需要检查你的编译器是否能够找到这些头文件的路径,以及是否有正确地设置编译选项和宏定义。你可以参考以下的网页来了解如何配置 CodeBlocks 和 MinGW 来编译 win32drv.c 文件 。

    未声明的标识符 (undeclared identifier):这种错误通常是因为缺少了某个变量或者常量的声明,导致编译器无法识别它们。比如 WM_TOUCH 是一个 Windows 的消息常量,用来表示触摸屏事件,如果你没有正确地包含 winuser.h 头文件或者定义 _WIN32_WINNT 宏为 0x0601 或更高,就会出现这种错误。你需要检查你的代码中是否有正确地包含和定义以下的内容:
    #define _WIN32_WINNT 0x0601
    #include <winuser.h>

    如果没有,你需要添加它们到你的代码中。如果有,你需要检查你的编译器是否支持 Windows 7 或更高版本的 API,并且是否有正确地设置编译选项和宏定义。你可以参考以下的网页来了解如何配置 CodeBlocks 和 MinGW 来编译 win32drv.c 文件 。

    隐式函数声明 (implicit function declaration):这种错误通常是因为缺少了某个函数的原型声明,导致编译器无法确定函数的参数和返回值类型。比如 CreateEventExW, lv_win32_get_touch_input_info, lv_win32_close_touch_input_handle 等函数都是在 win32drv.c 文件中自定义或者引用的函数,如果你没有正确地声明它们,就会出现这种错误。你需要检查你的代码中是否有声明以下的函数原型:
    HANDLE WINAPI CreateEventExW(LPSECURITY_ATTRIBUTES lpEventAttributes, LPCWSTR lpName, DWORD dwFlags, DWORD dwDesiredAccess);
    BOOL lv_win32_get_touch_input_info(HTOUCHINPUT hTouchInput, UINT cInputs, PTOUCHINPUT pInputs, int cbSize);
    BOOL lv_win32_close_touch_input_handle(HTOUCHINPUT hTouchInput);

    如果没有,你需要添加它们到你的代码中。如果有,你需要检查你的代码中是否有正确地调用这些函数,并且是否有正确地传递参数和接收返回值。

    整数转换为指针 (int to pointer conversion):这种错误通常是因为将一个整数类型赋值给一个指针类型,导致类型不匹配。比如 LoadCursorW 函数的第二个参数应该是一个 LPCWSTR 类型,也就是一个宽字符指针,但是你传递了一个 CHAR 类型,也就是一个单字节字符,这就会出现这种错误。你需要检查你的代码中是否有正确地使用以下的函数调用:
    LoadCursorW(NULL, IDC_ARROW);

    如果没有,你需要修改它们为正确的形式。如果有,你需要检查你的编译器是否支持宽字符类型,并且是否有正确地设置编译选项和宏定义。

    初始化和声明 extern 变量 (initialized and declared extern):这种警告通常是因为将一个 extern 修饰的变量同时进行了初始化,导致变量的链接属性不明确。比如 lv_win32_quit_signal, lv_win32_pointer_device_object, lv_win32_keypad_device_object, lv_win32_encoder_device_object 等变量都是在 win32drv.c 文件中用 extern 修饰并且初始化的,这就会出现这种警告。你需要检查你的代码中是否有正确地使用以下的变量声明:
    extern volatile BOOL lv_win32_quit_signal;
    extern lv_indev_t *lv_win32_pointer_device_object;
    extern lv_indev_t *lv_win32_keypad_device_object;
    extern lv_indev_t *lv_win32_encoder_device_object;

    如果没有,你需要修改它们为正确的形式。如果有,你需要检查你的代码中是否有在其他文件中定义这些变量,并且是否有正确地设置链接选项和宏定义。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月20日
  • 已采纳回答 8月12日
  • 请采纳用户回复 8月12日
  • 创建了问题 8月11日

悬赏问题

  • ¥15 如何在animate html5文档任意位置实现文本输入功能?
  • ¥15 电机正反转电路设计中,mos管的关断问题,求原因。
  • ¥15 关于#sql#的问题:怎么找出所有同时多张有效保单的车架号
  • ¥15 KFC账号下单提示拒绝操作
  • ¥20 HC32F460串口发送仅能接到一个数据
  • ¥15 求解答一下是否可以修改一个软件运行时生成的文件内部内置的文件创建时间?
  • ¥20 WIN10蓝屏问题!
  • ¥15 Mac经常自动关机,再次打开后提示“电脑因出现问题而重新启动”
  • ¥60 使用ovito软件怎么得到金属玻璃的自由体积
  • ¥15 急!如何实现根据汇编指令推测硬件功能?