previous implicit declaration of 'some_function' was here

本文介绍了在编程中遇到的函数声明顺序错误问题及其解决方案。强调了正确的函数原型声明对于避免此类错误的重要性,并提供了具体的代码示例说明如何调整函数声明顺序以解决问题。

error: previous implicit declaration of 'some_function' was here的解决办法

error: previous implicit declaration of 'some_function' was here

Solution: Didn't your programming teacher tell you to always make function prototypes? He/she had good reason. It's also best to have them at the top, global space of the file, not in weird places. Yes, I have seen a function declared within another function, just before it gets called. Try to avoid that!

 

原因:注意函数在声明的时候注意顺序。

在写源代码的时候

|***********|

|** A******|

|** B******|

|***********|

其中A函数要调用B函数,此时就会在A函数处出现 previous implicit declaration of B was here的现象。

如果将代码改为

|***********|

|** B******|

|** A******|

|***********|此时在A里调用B便不会出现错误了.

cli_common.c:12228:37: error: passing argument 3 of 'pthread_create' from incompatible pointer type [-Werror=incompatible-pointer-types] if(0 != (pthread_create(&t_id,NULL,fwcli_stdinToMaster,(void *)&slave_sock))) ^ In file included from ../../../../../../../src/platform/include/h/wrn/wm/common/wmos.h:187:0, from ../../../../../../../src/platform/include/h/wrn/wm/common/wm.h:70, from cli_common.c:34: ../../../../host/aarch64-buildroot-linux-gnu/sysroot/usr/include/pthread.h:233:12: note: expected 'void * (*)(void *)' but argument is of type 'void (*)(void *)' extern int pthread_create (pthread_t *__restrict __newthread, ^ cli_common.c:12232:3: error: implicit declaration of function 'fwcli__stopUseFakeConsole' [-Werror=implicit-function-declaration] fwcli__stopUseFakeConsole(); ^ cli_common.c: At top level: cli_common.c:12255:7: error: conflicting types for 'fwcli_stdinToMaster' void *fwcli_stdinToMaster(void * arg) ^ In file included from ../../../../../../../src/platform/include/h/wrn/wm/cli/rcc.h:61:0, from cli_common.c:36: ../../../../../../../src/platform/include/h/wrn/wm/cli/cli_common.h:973:13: note: previous declaration of 'fwcli_stdinToMaster' was here static void fwcli_stdinToMaster(void * arg); ^ cli_common.c:12331:6: error: conflicting types for 'fwcli__stopUseFakeConsole' [-Werror] void fwcli__stopUseFakeConsole() ^ cli_common.c:12232:3: note: previous implicit declaration of 'fwcli__stopUseFakeConsole' was here fwcli__stopUseFakeConsole(); ^ In file included from ../../../../../../../src/platform/include/h/wrn/wm/cli/rcc.h:61:0, from cli_common.c:36: ../../../../../../../src/platform/include/h/wrn/wm/cli/cli_common.h:973:13: error: 'fwcli_stdinToMaster' used but never defined [-Werror] static void fwcli_stdinToMaster(void * arg); ^ cc1: all warnings being treated as errors src/CMakeFiles/cliDev.dir/build.make:1469: recipe for target 'src/CMakeFiles/cliDev.dir/cli_common.c.o' failed make[4]: *** [src/CMakeFiles/cliDev.dir/cli_common.c.o] Error 1 CMakeFiles/Makefile2:154: recipe for target 'src/CMakeFiles/cliDev.dir/all' failed make[3]: *** [src/CMakeFiles/cliDev.dir/all] Error 2 Makefile:132: recipe for target 'all' failed make[2]: *** [all] Error 2 package/tplink/tplink-generic.mk:289: recipe for target '/project/code_source_repository/fep_source/buildroot/build/armv8/build/tplink/cli-1.0/.stamp_built' failed make[1]: *** [/project/code_source_repository/fep_source/buildroot/build/armv8/build/tplink/cli-1.0/.stamp_built] Error 2 Makefile:84: recipe for target '_all' failed
09-30
#include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <fcntl.h> #include <sys/ioctl.h> #include <string.h> #include "lvgl/lvgl.h" #include "fonts/free_font.h" #include "main_screen.h" #include "asr/asr_offline_sample.h" // 引入ASR头文件 #include "time_manager.h" // 引入时间管理头文件 #include "weather/weather_hour.h" // 添加天气客户端头文件 /* LED控制相关宏定义 */ #define TEST_MAGIC 'x' #define LED_ON 0 #define LED_OFF 1 #define LED1 _IO(TEST_MAGIC, 0) #define LED2 _IO(TEST_MAGIC, 1) #define LED3 _IO(TEST_MAGIC, 2) #define LED4 _IO(TEST_MAGIC, 3) /* 蜂鸣器控制相关宏定义 - 根据测试代码修改 */ #define BEEP_ON 0 #define BEEP_OFF 1 /* 全局状态变量 */ static int led_state = 0; // 0-关闭 1-开启 static int buzzer_state = 0; // 0-关闭 1-开启 static lv_obj_t *asr_status_label = NULL; static lv_obj_t *led_switch_obj = NULL; // 全局LED开关对象 static lv_obj_t *buzzer_switch_obj = NULL; // 全局蜂鸣器开关对象 static lv_obj_t *time_label_func = NULL; // 功能界面时间标签 /* 天气数据显示相关变量 */ static lv_obj_t *today_weather_btn = NULL; static lv_obj_t *weather_img = NULL; static lv_obj_t *weather_city_label = NULL; static lv_obj_t *weather_temp_label = NULL; static lv_obj_t *weather_desc_label = NULL; static lv_obj_t *weather_humidity_label = NULL; static lv_obj_t *weather_wind_label = NULL; /* 函数声明 */ static void led_switch_event_handler(lv_event_t *e); static void buzzer_switch_event_handler(lv_event_t *e); static void return_to_login_cb(lv_event_t *e); static void update_asr_status_timer_cb(lv_timer_t *timer); static void weather_data_callback(const char* data); static void create_weather_display(lv_obj_t *parent); void led_control(int state); void buzzer_control(int state); void update_led_switch_state(int state); void update_buzzer_switch_state(int state); /* LED开关事件回调 */ static void led_switch_event_handler(lv_event_t *e) { lv_obj_t *switch_obj = lv_event_get_target(e); led_state = lv_obj_has_state(switch_obj, LV_STATE_CHECKED) ? 1 : 0; led_control(led_state); } /* 蜂鸣器开关事件回调 */ static void buzzer_switch_event_handler(lv_event_t *e) { lv_obj_t *switch_obj = lv_event_get_target(e); buzzer_state = lv_obj_has_state(switch_obj, LV_STATE_CHECKED) ? 1 : 0; buzzer_control(buzzer_state); } /* 返回登录界面的回调函数 */ static void return_to_login_cb(lv_event_t *e); // 定时器回调函数,用于更新语音识别状态显示 static void update_asr_status_timer_cb(lv_timer_t *timer) { lv_obj_t *label = (lv_obj_t *)timer->user_data; if (led_state) { lv_label_set_text(label, ""); } else { lv_label_set_text(label, ""); } lv_timer_del(timer); // 只执行一次 } /* LED控制函数 */ void led_control(int state) { printf("LED控制调用: 状态=%d\n", state); int fd = open("/dev/Led", O_RDWR); if(fd == -1) { perror("open:/dev/Led"); return; } if(state == 1) { ioctl(fd, LED1, LED_ON); ioctl(fd, LED2, LED_ON); ioctl(fd, LED3, LED_ON); ioctl(fd, LED4, LED_ON); printf("所有LED灯亮\n"); // 更新界面显示 if (asr_status_label) { lv_label_set_text(asr_status_label, ""); } // 更新开关状态 update_led_switch_state(1); } else if(state == 0) { ioctl(fd, LED1, LED_OFF); ioctl(fd, LED2, LED_OFF); ioctl(fd, LED3, LED_OFF); ioctl(fd, LED4, LED_OFF); printf("所有LED灯灭\n"); // 更新界面显示 if (asr_status_label) { lv_label_set_text(asr_status_label, ""); } // 更新开关状态 update_led_switch_state(0); } close(fd); } /* 蜂鸣器控制函数 - 根据测试代码修改 */ void buzzer_control(int state) { printf("蜂鸣器控制调用: 状态=%d\n", state); int fd = open("/dev/beep", O_RDWR); if(fd == -1) { perror("open:/dev/beep"); printf("尝试其他可能的设备名...\n"); // 如果蜂鸣器设备不存在,尝试其他可能的设备名 fd = open("/dev/Beep", O_RDWR); if(fd == -1) { perror("open:/dev/Beep"); return; } } if(state == 1) { // 根据测试代码,第二个参数是命令,第三个参数是值 ioctl(fd, BEEP_ON, 1); printf("蜂鸣器开启\n"); // 更新开关状态 update_buzzer_switch_state(1); } else if(state == 0) { // 根据测试代码,第二个参数是命令,第三个参数是值 ioctl(fd, BEEP_OFF, 1); printf("蜂鸣器关闭\n"); // 更新开关状态 update_buzzer_switch_state(0); } close(fd); } /* 更新LED开关状态函数 */ void update_led_switch_state(int state) { if (led_switch_obj == NULL) { printf("LED开关对象未初始化\n"); return; } if (state == 1) { // 打开开关 lv_obj_add_state(led_switch_obj, LV_STATE_CHECKED); printf("界面LED开关状态已更新: 打开\n"); } else { // 关闭开关 lv_obj_clear_state(led_switch_obj, LV_STATE_CHECKED); printf("界面LED开关状态已更新: 关闭\n"); } // 更新全局LED状态 led_state = state; } /* 更新蜂鸣器开关状态函数 */ void update_buzzer_switch_state(int state) { if (buzzer_switch_obj == NULL) { printf("蜂鸣器开关对象未初始化\n"); return; } if (state == 1) { // 打开开关 lv_obj_add_state(buzzer_switch_obj, LV_STATE_CHECKED); printf("界面蜂鸣器开关状态已更新: 打开\n"); } else { // 关闭开关 lv_obj_clear_state(buzzer_switch_obj, LV_STATE_CHECKED); printf("界面蜂鸣器开关状态已更新: 关闭\n"); } // 更新全局蜂鸣器状态 buzzer_state = state; } /* 天气数据回调函数 */ static void weather_data_callback(const char* data) { printf("收到天气数据回调: %s\n", data); update_weather_display(data); } /* 解析天气数据并更新显示 */ void update_weather_display(const char* weather_data) { if (today_weather_btn == NULL) { printf("天气按钮未初始化,无法更新天气显示\n"); return; } printf("正在解析天气数据: %s\n", weather_data); // 解析天气数据(假设格式为:城市|温度|天气描述|湿度|风速) char city[50] = "未知城市"; char temp[20] = "--°C"; char desc[50] = "未知天气"; char humidity[20] = "湿度: --%"; char wind[30] = "风速: --m/s"; // 简单的解析逻辑,根据实际数据格式调整 char data_copy[512]; strncpy(data_copy, weather_data, sizeof(data_copy)-1); data_copy[sizeof(data_copy)-1] = '\0'; char *token = strtok(data_copy, "|"); if (token) { strncpy(city, token, sizeof(city)-1); city[sizeof(city)-1] = '\0'; token = strtok(NULL, "|"); if (token) { strncpy(temp, token, sizeof(temp)-1); temp[sizeof(temp)-1] = '\0'; token = strtok(NULL, "|"); if (token) { strncpy(desc, token, sizeof(desc)-1); desc[sizeof(desc)-1] = '\0'; token = strtok(NULL, "|"); if (token) { snprintf(humidity, sizeof(humidity), "湿度: %s%%", token); token = strtok(NULL, "|"); if (token) { snprintf(wind, sizeof(wind), "风速: %sm/s", token); } } } } } // 更新天气显示 if (weather_city_label) { lv_label_set_text(weather_city_label, city); } if (weather_temp_label) { lv_label_set_text(weather_temp_label, temp); } if (weather_desc_label) { lv_label_set_text(weather_desc_label, desc); } if (weather_humidity_label) { lv_label_set_text(weather_humidity_label, humidity); } if (weather_wind_label) { lv_label_set_text(weather_wind_label, wind); } printf("天气显示已更新: %s %s %s %s %s\n", city, temp, desc, humidity, wind); } /* 创建天气显示组件 */ static void create_weather_display(lv_obj_t *parent) { // 创建天气图片 weather_img = lv_img_create(parent); lv_img_set_src(weather_img, "A:/imgs/today.png"); lv_obj_set_size(weather_img, 300, 380); lv_obj_align(weather_img, LV_ALIGN_CENTER, 0, 0); lv_obj_set_style_radius(weather_img, 20, 0); lv_obj_set_style_clip_corner(weather_img, true, 0); // 创建城市名称标签 weather_city_label = lv_label_create(parent); lv_label_set_text(weather_city_label, "加载中..."); lv_obj_add_style(weather_city_label, FontStyleInit(), 0); lv_obj_set_style_text_color(weather_city_label, lv_color_hex(0x000000), 0); lv_obj_align(weather_city_label, LV_ALIGN_TOP_MID, 0, 30); // 创建温度标签 weather_temp_label = lv_label_create(parent); lv_label_set_text(weather_temp_label, "--°C"); lv_obj_add_style(weather_temp_label, FontStyleInit3(), 0); lv_obj_set_style_text_color(weather_temp_label, lv_color_hex(0xFF4500), 0); lv_obj_align(weather_temp_label, LV_ALIGN_CENTER, 0, -40); // 创建天气描述标签 weather_desc_label = lv_label_create(parent); lv_label_set_text(weather_desc_label, "未知天气"); lv_obj_add_style(weather_desc_label, FontStyleInit(), 0); lv_obj_set_style_text_color(weather_desc_label, lv_color_hex(0x000000), 0); lv_obj_align(weather_desc_label, LV_ALIGN_CENTER, 0, 0); // 创建湿度标签 weather_humidity_label = lv_label_create(parent); lv_label_set_text(weather_humidity_label, "湿度: --%"); lv_obj_add_style(weather_humidity_label, FontStyleInit(), 0); lv_obj_set_style_text_color(weather_humidity_label, lv_color_hex(0x000000), 0); lv_obj_align(weather_humidity_label, LV_ALIGN_CENTER, 0, 40); // 创建风速标签 weather_wind_label = lv_label_create(parent); lv_label_set_text(weather_wind_label, "风速: --m/s"); lv_obj_add_style(weather_wind_label, FontStyleInit(), 0); lv_obj_set_style_text_color(weather_wind_label, lv_color_hex(0x000000), 0); lv_obj_align(weather_wind_label, LV_ALIGN_CENTER, 0, 70); } /* 创建功能界面 */ void function_screen() { // 创建功能界面屏幕 lv_obj_t *func_scr = lv_obj_create(NULL); lv_scr_load(func_scr); // 功能界面背景 lv_obj_t *bg = lv_img_create(func_scr); lv_img_set_src(bg, "A:/imgs/weather_bg2.png"); lv_obj_set_size(bg, 800, 480); // 时间显示标签 - 右上角 time_label_func = lv_label_create(func_scr); lv_label_set_text(time_label_func, get_current_time_string()); lv_obj_add_style(time_label_func, FontStyleInit(), 0); lv_obj_set_style_text_color(time_label_func, lv_color_hex(0x000000), 0); lv_obj_align(time_label_func, LV_ALIGN_TOP_RIGHT, -20, 20); // 设置功能界面时间标签 set_func_time_label(time_label_func); // 语音识别状态提示 asr_status_label = lv_label_create(func_scr); lv_label_set_text(asr_status_label, ""); lv_obj_add_style(asr_status_label, FontStyleInit(), 0); lv_obj_set_style_text_color(asr_status_label, lv_color_hex(0x000000), 0); lv_obj_align(asr_status_label, LV_ALIGN_CENTER, 0, -60); // LED控制标签 lv_obj_t *led_label = lv_label_create(func_scr); lv_label_set_text(led_label, "LED控制"); lv_obj_add_style(led_label, FontStyleInit(), 0); lv_obj_set_style_text_color(led_label, lv_color_hex(0x000000), 0); lv_obj_align(led_label, LV_ALIGN_CENTER, -100, 60); // 创建LED开关 led_switch_obj = lv_switch_create(func_scr); // 赋值给全局变量 lv_obj_align(led_switch_obj, LV_ALIGN_CENTER, -100, 90); lv_obj_add_event_cb(led_switch_obj, led_switch_event_handler, LV_EVENT_VALUE_CHANGED, NULL); lv_obj_set_style_bg_color(led_switch_obj, lv_color_hex(0x666666), LV_STATE_DEFAULT); lv_obj_set_style_bg_color(led_switch_obj, lv_color_hex(0x00BB00), LV_STATE_CHECKED); // 蜂鸣器控制标签 lv_obj_t *buzzer_label = lv_label_create(func_scr); lv_label_set_text(buzzer_label, "蜂鸣器控制"); lv_obj_add_style(buzzer_label, FontStyleInit(), 0); lv_obj_set_style_text_color(buzzer_label, lv_color_hex(0x000000), 0); lv_obj_align(buzzer_label, LV_ALIGN_CENTER, 100, 60); // 创建蜂鸣器开关 buzzer_switch_obj = lv_switch_create(func_scr); // 赋值给全局变量 lv_obj_align(buzzer_switch_obj, LV_ALIGN_CENTER, 100, 90); lv_obj_add_event_cb(buzzer_switch_obj, buzzer_switch_event_handler, LV_EVENT_VALUE_CHANGED, NULL); lv_obj_set_style_bg_color(buzzer_switch_obj, lv_color_hex(0x666666), LV_STATE_DEFAULT); lv_obj_set_style_bg_color(buzzer_switch_obj, lv_color_hex(0x00BB00), LV_STATE_CHECKED); // 根据当前状态设置开关初始状态 if (led_state == 1) { lv_obj_add_state(led_switch_obj, LV_STATE_CHECKED); } else { lv_obj_clear_state(led_switch_obj, LV_STATE_CHECKED); } if (buzzer_state == 1) { lv_obj_add_state(buzzer_switch_obj, LV_STATE_CHECKED); } else { lv_obj_clear_state(buzzer_switch_obj, LV_STATE_CHECKED); } // 返回登录界面按钮 lv_obj_t *return_btn = lv_btn_create(func_scr); lv_obj_set_size(return_btn, 150, 50); lv_obj_align(return_btn, LV_ALIGN_BOTTOM_MID, 0, -30); lv_obj_set_style_radius(return_btn, 10, 0); lv_obj_t *return_label = lv_label_create(return_btn); lv_label_set_text(return_label, "返回登录"); lv_obj_center(return_label); lv_obj_add_style(return_label, FontStyleInit(), 0); // 添加返回事件处理 lv_obj_add_event_cb(return_btn, return_to_login_cb, LV_EVENT_CLICKED, NULL); // 创建天气显示按钮 today_weather_btn = lv_btn_create(func_scr); lv_obj_set_pos(today_weather_btn, 20, 20); lv_obj_set_size(today_weather_btn, 300, 380); lv_obj_set_style_radius(today_weather_btn, 20, 0); lv_obj_set_style_bg_color(today_weather_btn, lv_color_white(), 0); lv_obj_set_style_bg_opa(today_weather_btn, LV_OPA_COVER, 0); // 创建天气显示组件 create_weather_display(today_weather_btn); printf("检查语音识别文件...\n"); if (access("/usrCode/asr/common.jet", F_OK) != 0) { printf("警告: 语音识别资源文件不存在\n"); lv_label_set_text(asr_status_label, ""); } else if (access("/usrCode/asr/call.bnf", F_OK) != 0) { printf("警告: 语法文件不存在\n"); lv_label_set_text(asr_status_label, ""); } else if (access("/usrCode/asr/GrmBuild", F_OK) != 0) { printf("创建语法构建目录\n"); system("mkdir -p /usrCode/asr/GrmBuild"); } else { printf("语音识别文件检查通过\n"); } // 检查录音设备 if (access("/dev/dsp", F_OK) != 0 && access("/dev/audio", F_OK) != 0) { printf("警告: 未找到录音设备\n"); lv_label_set_text(asr_status_label, ""); } else { printf("录音设备检查通过\n"); // 启动语音识别功能 start_asr(); // 延迟更新状态显示(2秒后) lv_timer_create(update_asr_status_timer_cb, 2000, asr_status_label); } // 初始化天气客户端 printf("初始化天气客户端...\n"); if (weather_client_init(weather_data_callback) == 0) { printf("天气客户端初始化成功\n"); // 发送初始天气请求 lv_timer_t *weather_timer = lv_timer_create([](lv_timer_t *timer) { send_weather_request("get_weather"); lv_timer_del(timer); }, 1000, NULL); } else { printf("天气客户端初始化失败\n"); // 显示默认天气信息 update_weather_display("北京|25°C|晴|45|3.2"); } } /* 返回登录界面的回调函数 */ static void return_to_login_cb(lv_event_t *e) { // 停止语音识别 stop_asr(); // 关闭天气客户端 weather_client_close(); // 关闭LED灯和蜂鸣器再返回登录界面 led_control(0); buzzer_control(0); led_state = 0; buzzer_state = 0; // 重置开关对象指针 led_switch_obj = NULL; buzzer_switch_obj = NULL; // 清理天气显示对象 today_weather_btn = NULL; weather_img = NULL; weather_city_label = NULL; weather_temp_label = NULL; weather_desc_label = NULL; weather_humidity_label = NULL; weather_wind_label = NULL; // 清理时间标签引用 cleanup_time_labels(); // 显示登录界面 show_login_screen(); } /* 清理功能界面资源 */ void cleanup_function_screen() { // 停止语音识别 stop_asr(); // 关闭天气客户端 weather_client_close(); // 清理时关闭LED和蜂鸣器 led_control(0); buzzer_control(0); led_state = 0; buzzer_state = 0; // 重置开关对象指针 led_switch_obj = NULL; buzzer_switch_obj = NULL; // 清理天气显示对象 today_weather_btn = NULL; weather_img = NULL; weather_city_label = NULL; weather_temp_label = NULL; weather_desc_label = NULL; weather_humidity_label = NULL; weather_wind_label = NULL; // 清理时间标签引用 cleanup_time_labels(); } 修改报错代码:luo@virtual:/mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master$ make -j64 /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/usrCode/func_screen.c: In function ‘weather_data_callback’: /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/usrCode/func_screen.c:213:5: warning: implicit declaration of function ‘update_weather_display’ [-Wimplicit-function-declaration] update_weather_display(data); ^ /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/usrCode/func_screen.c: At top level: /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/usrCode/func_screen.c:217:6: warning: conflicting types for ‘update_weather_display’ void update_weather_display(const char* weather_data) { ^ /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/usrCode/func_screen.c:213:5: note: previous implicit declaration of ‘update_weather_display’ was here update_weather_display(data); ^ /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/usrCode/func_screen.c: In function ‘function_screen’: /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/usrCode/func_screen.c:461:53: error: expected expression before ‘[’ token lv_timer_t *weather_timer = lv_timer_create([](lv_timer_t *timer) { ^ /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/usrCode/func_screen.c:461:75: error: expected ‘)’ before ‘{’ token lv_timer_t *weather_timer = lv_timer_create([](lv_timer_t *timer) { ^ /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/usrCode/func_screen.c:461:37: error: too few arguments to function ‘lv_timer_create’ lv_timer_t *weather_timer = lv_timer_create([](lv_timer_t *timer) { ^ In file included from /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/lvgl/lvgl.h:26:0, from /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/usrCode/func_screen.c:7: /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/lvgl/src/misc/lv_timer.h:106:14: note: declared here lv_timer_t * lv_timer_create(lv_timer_cb_t timer_xcb, uint32_t period, void * u ^ /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/usrCode/func_screen.c:461:21: warning: unused variable ‘weather_timer’ [-Wunused-variable] lv_timer_t *weather_timer = lv_timer_create([](lv_timer_t *timer) { ^ make: *** [Makefile:47: /mnt/hgfs/lv_code/lv_port_linux_frame_buffer-master/usrCode/func_screen.o] Error 1
最新发布
11-26
=========== copy iot-security from local =============== touch /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/.prepared_ff3f946004efdf04c05e4df40af18419 (cd /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/./; if [ -x ./configure ]; then /usr/bin/find /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/ -name config.guess | xargs -r chmod u+w; /usr/bin/find /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/ -name config.guess | xargs -r -n1 cp /home/tplink/code/be900v2/Iplatform/openwrt/scripts/config.guess; /usr/bin/find /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/ -name config.sub | xargs -r chmod u+w; /usr/bin/find /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/ -name config.sub | xargs -r -n1 cp /home/tplink/code/be900v2/Iplatform/openwrt/scripts/config.sub; AR=arm-buildroot-linux-gnueabi-ar AS="arm-buildroot-linux-gnueabi-gcc -c " LD=arm-buildroot-linux-gnueabi-ld NM=arm-buildroot-linux-gnueabi-nm CC="arm-buildroot-linux-gnueabi-gcc" GCC="arm-buildroot-linux-gnueabi-gcc" CXX="arm-buildroot-linux-gnueabi-g++" RANLIB=arm-buildroot-linux-gnueabi-ranlib STRIP=arm-buildroot-linux-gnueabi-strip OBJCOPY=arm-buildroot-linux-gnueabi-objcopy OBJDUMP=arm-buildroot-linux-gnueabi-objdump SIZE=arm-buildroot-linux-gnueabi-size CFLAGS=" -I/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/bcm963xx_5.04L.04/kernel/linux-4.19/../"bcmkernel/include" -I/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/bcm963xx_5.04L.04/kernel/linux-4.19/../"bcmkernel/include"/uapi" CXXFLAGS=" -I/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/bcm963xx_5.04L.04/kernel/linux-4.19/../"bcmkernel/include" -I/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/bcm963xx_5.04L.04/kernel/linux-4.19/../"bcmkernel/include"/uapi" CPPFLAGS="-I/home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-be900v2/usr/include -I/home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-be900v2/include -I/home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/usr-be900v2/include -I/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/toolchain/opt/toolchains/crosstools-arm_softfp-gcc-10.3-linux-4.19-glibc-2.32-binutils-2.36.1/usr/include " LDFLAGS="-L/home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-be900v2/usr/lib -L/home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-be900v2/lib -Wl,-rpath-link,/home/tplink/code/be900v2/Iplatform/openwrt/staging_dir/target-arm-openwrt-linux-uclibc-be900v2/usr/lib -L/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/toolchain/opt/toolchains/crosstools-arm_softfp-gcc-10.3-linux-4.19-glibc-2.32-binutils-2.36.1/usr/lib -L/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/toolchain/opt/toolchains/crosstools-arm_softfp-gcc-10.3-linux-4.19-glibc-2.32-binutils-2.36.1/lib " ./configure --target=arm-openwrt-linux-uclibc --host=arm-openwrt-linux-uclibc --build=x86_64-linux-gnu --program-prefix="" --program-suffix="" --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --libexecdir=/usr/lib --sysconfdir=/etc --datadir=/usr/share --localstatedir=/var --mandir=/usr/man --infodir=/usr/info --disable-nls ; fi; ) rm -f /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/.configured_* touch /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/.configured_ make -C "/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/bcm963xx_5.04L.04/kernel/linux-4.19" M="/home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0" EXTRA_CFLAGS="-I/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/bcm963xx_5.04L.04/kernel/linux-4.19/../"bcmkernel/include" -I/home/tplink/code/be900v2/Iplatform/openwrt/../../bcm504L04/bcm963xx_5.04L.04/kernel/linux-4.19/../"bcmkernel/include"/uapi" modules make[4]: Entering directory '/home/tplink/code/be900v2/bcm504L04/bcm963xx_5.04L.04/kernel/linux-4.19' $KERNELPATH is [/opt/prpl_xgb834v/sdk_an7581_an7551/prplos/prplos-v3.0.1/build_dir/target-aarch64_cortex-a53_musl/linux-airoha_an7581/linux-5.4.55] $PRIVATE_MODULES_PATH is [] CC [M] /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.o In file included from ././include/linux/compiler_types.h:64:0, from <command-line>:0: ./include/linux/compiler-gcc.h:20:3: error: #error Sorry, your version of GCC is too old - please use 5.1 or newer. # error Sorry, your version of GCC is too old - please use 5.1 or newer. ^ In file included from ./arch/x86/include/asm/pgtable_types.h:348:0, from ./arch/x86/include/asm/processor.h:19, from ./arch/x86/include/asm/cpufeature.h:5, from ./arch/x86/include/asm/thread_info.h:53, from ./include/linux/thread_info.h:39, from ./arch/x86/include/asm/preempt.h:7, from ./include/linux/preempt.h:81, from ./include/linux/spinlock.h:51, from ./include/linux/seqlock.h:36, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:10, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./include/asm-generic/pgtable-nopud.h:21:0: warning: "PUD_SHIFT" redefined #define PUD_SHIFT P4D_SHIFT ^ In file included from ./arch/x86/include/asm/pgtable_types.h:251:0, from ./arch/x86/include/asm/processor.h:19, from ./arch/x86/include/asm/cpufeature.h:5, from ./arch/x86/include/asm/thread_info.h:53, from ./include/linux/thread_info.h:39, from ./arch/x86/include/asm/preempt.h:7, from ./include/linux/preempt.h:81, from ./include/linux/spinlock.h:51, from ./include/linux/seqlock.h:36, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:10, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./arch/x86/include/asm/pgtable_64_types.h:83:0: note: this is the location of the previous definition #define PUD_SHIFT 30 ^ In file included from ./arch/x86/include/asm/pgtable_types.h:348:0, from ./arch/x86/include/asm/processor.h:19, from ./arch/x86/include/asm/cpufeature.h:5, from ./arch/x86/include/asm/thread_info.h:53, from ./include/linux/thread_info.h:39, from ./arch/x86/include/asm/preempt.h:7, from ./include/linux/preempt.h:81, from ./include/linux/spinlock.h:51, from ./include/linux/seqlock.h:36, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:10, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./include/asm-generic/pgtable-nopud.h:22:0: warning: "PTRS_PER_PUD" redefined #define PTRS_PER_PUD 1 ^ In file included from ./arch/x86/include/asm/pgtable_types.h:251:0, from ./arch/x86/include/asm/processor.h:19, from ./arch/x86/include/asm/cpufeature.h:5, from ./arch/x86/include/asm/thread_info.h:53, from ./include/linux/thread_info.h:39, from ./arch/x86/include/asm/preempt.h:7, from ./include/linux/preempt.h:81, from ./include/linux/spinlock.h:51, from ./include/linux/seqlock.h:36, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:10, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./arch/x86/include/asm/pgtable_64_types.h:84:0: note: this is the location of the previous definition #define PTRS_PER_PUD 512 ^ In file included from ./arch/x86/include/asm/pgtable_types.h:348:0, from ./arch/x86/include/asm/processor.h:19, from ./arch/x86/include/asm/cpufeature.h:5, from ./arch/x86/include/asm/thread_info.h:53, from ./include/linux/thread_info.h:39, from ./arch/x86/include/asm/preempt.h:7, from ./include/linux/preempt.h:81, from ./include/linux/spinlock.h:51, from ./include/linux/seqlock.h:36, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:10, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./include/asm-generic/pgtable-nopud.h:23:0: warning: "PUD_SIZE" redefined #define PUD_SIZE (1UL << PUD_SHIFT) ^ In file included from ./arch/x86/include/asm/pgtable_types.h:251:0, from ./arch/x86/include/asm/processor.h:19, from ./arch/x86/include/asm/cpufeature.h:5, from ./arch/x86/include/asm/thread_info.h:53, from ./include/linux/thread_info.h:39, from ./arch/x86/include/asm/preempt.h:7, from ./include/linux/preempt.h:81, from ./include/linux/spinlock.h:51, from ./include/linux/seqlock.h:36, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:10, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./arch/x86/include/asm/pgtable_64_types.h:100:0: note: this is the location of the previous definition #define PUD_SIZE (_AC(1, UL) << PUD_SHIFT) ^ In file included from ./arch/x86/include/asm/pgtable_types.h:348:0, from ./arch/x86/include/asm/processor.h:19, from ./arch/x86/include/asm/cpufeature.h:5, from ./arch/x86/include/asm/thread_info.h:53, from ./include/linux/thread_info.h:39, from ./arch/x86/include/asm/preempt.h:7, from ./include/linux/preempt.h:81, from ./include/linux/spinlock.h:51, from ./include/linux/seqlock.h:36, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:10, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./include/asm-generic/pgtable-nopud.h:24:0: warning: "PUD_MASK" redefined #define PUD_MASK (~(PUD_SIZE-1)) ^ In file included from ./arch/x86/include/asm/pgtable_types.h:251:0, from ./arch/x86/include/asm/processor.h:19, from ./arch/x86/include/asm/cpufeature.h:5, from ./arch/x86/include/asm/thread_info.h:53, from ./include/linux/thread_info.h:39, from ./arch/x86/include/asm/preempt.h:7, from ./include/linux/preempt.h:81, from ./include/linux/spinlock.h:51, from ./include/linux/seqlock.h:36, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:10, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./arch/x86/include/asm/pgtable_64_types.h:101:0: note: this is the location of the previous definition #define PUD_MASK (~(PUD_SIZE - 1)) ^ In file included from ./arch/x86/include/asm/cpufeature.h:5:0, from ./arch/x86/include/asm/thread_info.h:53, from ./include/linux/thread_info.h:39, from ./arch/x86/include/asm/preempt.h:7, from ./include/linux/preempt.h:81, from ./include/linux/spinlock.h:51, from ./include/linux/seqlock.h:36, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:10, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./arch/x86/include/asm/processor.h: In function 'load_cr3': ./arch/x86/include/asm/processor.h:251:2: error: implicit declaration of function '__sme_pa' [-Werror=implicit-function-declaration] write_cr3(__sme_pa(pgdir)); ^ In file included from ./include/linux/cache.h:6:0, from ./include/linux/printk.h:9, from ./include/linux/kernel.h:14, from ./include/linux/list.h:9, from ./include/linux/module.h:9, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./arch/x86/include/asm/processor.h: At top level: ./arch/x86/include/asm/cache.h:8:25: error: 'CONFIG_X86_L1_CACHE_SHIFT' undeclared here (not in a function) #define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT) ^ ./arch/x86/include/asm/cache.h:9:30: note: in expansion of macro 'L1_CACHE_SHIFT' #define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) ^ ./include/linux/cache.h:13:25: note: in expansion of macro 'L1_CACHE_BYTES' #define SMP_CACHE_BYTES L1_CACHE_BYTES ^ ./include/linux/cache.h:35:58: note: in expansion of macro 'SMP_CACHE_BYTES' #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES))) ^ ./include/linux/percpu-defs.h:149:2: note: in expansion of macro '____cacheline_aligned' ____cacheline_aligned ^ ./arch/x86/include/asm/processor.h:433:1: note: in expansion of macro 'DECLARE_PER_CPU_ALIGNED' DECLARE_PER_CPU_ALIGNED(struct stack_canary, stack_canary); ^ In file included from ./include/asm-generic/percpu.h:7:0, from ./arch/x86/include/asm/percpu.h:544, from ./arch/x86/include/asm/preempt.h:6, from ./include/linux/preempt.h:81, from ./include/linux/spinlock.h:51, from ./include/linux/seqlock.h:36, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:10, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./arch/x86/include/asm/processor.h:433:32: error: requested alignment is not an integer constant DECLARE_PER_CPU_ALIGNED(struct stack_canary, stack_canary); ^ ./include/linux/percpu-defs.h:101:38: note: in definition of macro 'DECLARE_PER_CPU_SECTION' extern __PCPU_ATTRS(sec) __typeof__(type) name ^ ./arch/x86/include/asm/processor.h:433:1: note: in expansion of macro 'DECLARE_PER_CPU_ALIGNED' DECLARE_PER_CPU_ALIGNED(struct stack_canary, stack_canary); ^ In file included from ./arch/x86/include/asm/preempt.h:7:0, from ./include/linux/preempt.h:81, from ./include/linux/spinlock.h:51, from ./include/linux/seqlock.h:36, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:10, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./include/linux/thread_info.h:116:19: error: redefinition of 'arch_within_stack_frames' static inline int arch_within_stack_frames(const void * const stack, ^ In file included from ./include/linux/thread_info.h:39:0, from ./arch/x86/include/asm/preempt.h:7, from ./include/linux/preempt.h:81, from ./include/linux/spinlock.h:51, from ./include/linux/seqlock.h:36, from ./include/linux/time.h:6, from ./include/linux/stat.h:19, from ./include/linux/module.h:10, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./arch/x86/include/asm/thread_info.h:186:19: note: previous definition of 'arch_within_stack_frames' was here static inline int arch_within_stack_frames(const void * const stack, ^ In file included from ./include/linux/cache.h:6:0, from ./include/linux/printk.h:9, from ./include/linux/kernel.h:14, from ./include/linux/list.h:9, from ./include/linux/module.h:9, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./arch/x86/include/asm/cache.h:13:31: error: 'CONFIG_X86_INTERNODE_CACHE_SHIFT' undeclared here (not in a function) #define INTERNODE_CACHE_SHIFT CONFIG_X86_INTERNODE_CACHE_SHIFT ^ ./include/linux/cache.h:72:35: note: in expansion of macro 'INTERNODE_CACHE_SHIFT' __attribute__((__aligned__(1 << (INTERNODE_CACHE_SHIFT)))) ^ ./include/linux/mmzone.h:112:3: note: in expansion of macro '____cacheline_internodealigned_in_smp' } ____cacheline_internodealigned_in_smp; ^ In file included from ./include/linux/gfp.h:6:0, from ./include/linux/umh.h:4, from ./include/linux/kmod.h:22, from ./include/linux/module.h:13, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./include/linux/mmzone.h:112:1: error: requested alignment is not an integer constant } ____cacheline_internodealigned_in_smp; ^ ./include/linux/mmzone.h:509:1: error: requested alignment is not an integer constant } ____cacheline_internodealigned_in_smp; ^ In file included from ./include/linux/ktime.h:25:0, from ./include/linux/timer.h:6, from ./include/linux/workqueue.h:9, from ./include/linux/srcu.h:34, from ./include/linux/notifier.h:16, from ./include/linux/memory_hotplug.h:7, from ./include/linux/mmzone.h:749, from ./include/linux/gfp.h:6, from ./include/linux/umh.h:4, from ./include/linux/kmod.h:22, from ./include/linux/module.h:13, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./include/linux/jiffies.h:80:1: error: requested alignment is not an integer constant extern u64 __cacheline_aligned_in_smp jiffies_64; ^ ./include/linux/jiffies.h:81:1: error: requested alignment is not an integer constant extern unsigned long volatile __cacheline_aligned_in_smp __jiffy_arch_data jiffies; ^ In file included from ./include/linux/srcu.h:62:0, from ./include/linux/notifier.h:16, from ./include/linux/memory_hotplug.h:7, from ./include/linux/mmzone.h:749, from ./include/linux/gfp.h:6, from ./include/linux/umh.h:4, from ./include/linux/kmod.h:22, from ./include/linux/module.h:13, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./include/linux/srcutree.h:43:2: error: requested alignment is not an integer constant spinlock_t __private lock ____cacheline_internodealigned_in_smp; ^ In file included from ./include/linux/elf.h:5:0, from ./include/linux/module.h:15, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./arch/x86/include/asm/elf.h: In function 'elf_common_init': ./arch/x86/include/asm/elf.h:180:3: error: 'struct thread_struct' has no member named 'fsbase' t->fsbase = t->gsbase = 0; ^ ./arch/x86/include/asm/elf.h:180:15: error: 'struct thread_struct' has no member named 'gsbase' t->fsbase = t->gsbase = 0; ^ ./arch/x86/include/asm/elf.h: At top level: ./arch/x86/include/asm/elf.h:381:1: error: requested alignment is not an integer constant } ____cacheline_aligned; ^ In file included from ./include/linux/module.h:26:0, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20: ./arch/x86/include/asm/module.h:67:2: error: #error unknown processor family #error unknown processor family ^ In file included from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:20:0: ./include/linux/module.h:486:1: error: requested alignment is not an integer constant } ____cacheline_aligned __randomize_layout; ^ In file included from ./include/linux/fs.h:8:0, from ./include/linux/net.h:27, from ./include/linux/skbuff.h:29, from ./include/linux/netfilter.h:6, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:23: ./include/linux/dcache.h:149:1: error: requested alignment is not an integer constant } ____cacheline_aligned; ^ In file included from ./include/linux/fs.h:13:0, from ./include/linux/net.h:27, from ./include/linux/skbuff.h:29, from ./include/linux/netfilter.h:6, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:23: ./include/linux/list_lru.h:50:1: error: requested alignment is not an integer constant } ____cacheline_aligned_in_smp; ^ In file included from ./include/uapi/linux/sem.h:5:0, from ./include/linux/sem.h:5, from ./include/linux/sched.h:15, from ./include/linux/ioprio.h:5, from ./include/linux/fs.h:39, from ./include/linux/net.h:27, from ./include/linux/skbuff.h:29, from ./include/linux/netfilter.h:6, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:23: ./include/linux/ipc.h:29:1: error: requested alignment is not an integer constant } ____cacheline_aligned_in_smp __randomize_layout; ^ In file included from ./include/linux/sched.h:20:0, from ./include/linux/ioprio.h:5, from ./include/linux/fs.h:39, from ./include/linux/net.h:27, from ./include/linux/skbuff.h:29, from ./include/linux/netfilter.h:6, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:23: ./include/linux/hrtimer.h:159:1: error: requested alignment is not an integer constant } __hrtimer_clock_base_align; ^ ./include/linux/hrtimer.h:221:1: error: requested alignment is not an integer constant } ____cacheline_aligned; ^ In file included from ./include/linux/ioprio.h:5:0, from ./include/linux/fs.h:39, from ./include/linux/net.h:27, from ./include/linux/skbuff.h:29, from ./include/linux/netfilter.h:6, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:23: ./include/linux/sched.h:408:1: error: requested alignment is not an integer constant } ____cacheline_aligned; ^ In file included from ./include/linux/net.h:27:0, from ./include/linux/skbuff.h:29, from ./include/linux/netfilter.h:6, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:23: ./include/linux/fs.h:1468:9: error: requested alignment is not an integer constant struct list_lru s_dentry_lru ____cacheline_aligned_in_smp; ^ ./include/linux/fs.h:1469:9: error: requested alignment is not an integer constant struct list_lru s_inode_lru ____cacheline_aligned_in_smp; ^ ./include/linux/fs.h:1481:2: error: requested alignment is not an integer constant spinlock_t s_inode_list_lock ____cacheline_aligned_in_smp; ^ ./include/linux/fs.h:1819:1: error: requested alignment is not an integer constant } ____cacheline_aligned; ^ In file included from ./include/linux/skbuff.h:29:0, from ./include/linux/netfilter.h:6, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:23: ./include/linux/net.h:104:1: error: requested alignment is not an integer constant } ____cacheline_aligned_in_smp; ^ In file included from ./arch/x86/include/asm/realmode.h:15:0, from ./arch/x86/include/asm/acpi.h:33, from ./arch/x86/include/asm/fixmap.h:29, from ./arch/x86/include/asm/pgtable_64.h:17, from ./arch/x86/include/asm/pgtable.h:698, from ./include/linux/memremap.h:7, from ./include/linux/mm.h:27, from ./include/linux/scatterlist.h:8, from ./include/linux/dma-mapping.h:11, from ./include/linux/skbuff.h:34, from ./include/linux/netfilter.h:6, from /home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.c:23: ./arch/x86/include/asm/io.h:44:31: fatal error: asm/early_ioremap.h: No such file or directory #include <asm/early_ioremap.h> ^ cc1: some warnings being treated as errors compilation terminated. scripts/Makefile.build:303: recipe for target '/home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.o' failed make[5]: *** [/home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/iot_main.o] Error 1 Makefile:1586: recipe for target '_module_/home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0' failed make[4]: *** [_module_/home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0] Error 2 make[4]: Leaving directory '/home/tplink/code/be900v2/bcm504L04/bcm963xx_5.04L.04/kernel/linux-4.19' Makefile:37: recipe for target '/home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/.built' failed make[3]: *** [/home/tplink/code/be900v2/Iplatform/openwrt/build_dir/linux-model_brcm_bcm490x/iot-security-1.0.0/.built] Error 2 make[3]: Leaving directory '/home/tplink/code/be900v2/prplos/platform/feeds/private/iot-security' package/Makefile:133: recipe for target 'package/feeds/feed_private/iot-security/compile' failed make[2]: *** [package/feeds/feed_private/iot-security/compile] Error 2 make[2]: Leaving directory '/home/tplink/code/be900v2/Iplatform/openwrt' /home/tplink/code/be900v2/Iplatform/openwrt/include/toplevel.mk:184: recipe for target 'package/iot-security/compile' failed make[1]: *** [package/iot-security/compile] Error 2 make[1]: Leaving directory '/home/tplink/code/be900v2/Iplatform/openwrt' Makefile:232: recipe for target 'iplatform_package/iot-security/compile' failed make: *** [iplatform_package/iot-security/compile] Error 2
11-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值