[英]error: variable 'size_map' has initializer but incomplete type
嘗試使用新的 esp-open-rtos (esp8266 sdk) 編譯此代碼但看到錯誤
app_main.c:446:10: error: variable 'size_map' has initializer but incomplete type enum flash_size_map size_map = system_get_flash_size_map();
uint32_t user_rf_cal_sector_set(void) {
enum flash_size_map size_map = system_get_flash_size_map();
uint32_t rf_cal_sec = 0;
switch (size_map) {
case FLASH_SIZE_4M_MAP_256_256:
rf_cal_sec = 128 - 5;
break;
case FLASH_SIZE_8M_MAP_512_512:
rf_cal_sec = 256 - 5;
break;
case FLASH_SIZE_16M_MAP_512_512:
case FLASH_SIZE_16M_MAP_1024_1024:
rf_cal_sec = 512 - 5;
break;
case FLASH_SIZE_32M_MAP_512_512:
case FLASH_SIZE_32M_MAP_1024_1024:
rf_cal_sec = 1024 - 5;
break;
default:
rf_cal_sec = 0;
break;
}
return rf_cal_sec;
}
嘗試使用 flash_size_map size_map = system_get_flash_size_map(); 但看到這個:
src/app_main.c:446:5: error: unknown type name 'flash_size_map' flash_size_map size_map = system_get_flash_size_map(); ^
當未提供正確的包含文件時會發生此類錯誤。
請注意,僅具有 enum 前向聲明是不夠的 - 您必須正確定義類型。
請參閱godbolt.org 上的示例- 如果您取消注釋第 9 行,編譯將成功。
關於您的應用程序,您需要 #include < esp_system.h >
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.