首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kaaproject esp8266构建冲突类型

Kaaproject esp8266构建冲突类型
EN

Stack Overflow用户
提问于 2017-02-07 17:30:03
回答 3查看 684关注 0票数 0

我已经安装了ESP8266 SDK与工具链,并尝试构建由kaa生成的项目CDataCollectionDemo。我就会犯这样的错误

代码语言:javascript
复制
/opt/Espressif/esp-rtos-sdk/include/espressif/c_types.h:47:29: error: conflicting types for ‘size_t’
 typedef unsigned int        size_t;
                             ^
In file included from /opt/Espressif/esp-rtos-sdk/extra_include/string.h:14:0,
                 from /home/tung/kaa/project/CDataCollectionDemo/targets/esp8266/target.

这是完整的输出

代码语言:javascript
复制
tung@ubuntu:~/kaa/project/CDataCollectionDemo$ sudo ./build.sh deploy
-- The C compiler identification is GNU 4.8.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
==================================
BUILD_TYPE = (Default)
KAA_PLATFORM = posix
KAA_MAX_LOG_LEVEL = 3
==================================
BOOTSTRAP ENABLED
PROFILE ENABLED
USER EXTENSION ENABLED
CONFIGURATION ENABLED
EVENTS ENABLED
LOGGING ENABLED
NOTIFICATION ENABLED
ENCRYPTION ENABLED
KAA WILL BE INSTALLED TO  /usr/local
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
-- Could NOT find cppcheck
-- WiFi AP: WiFi SSID
-- WiFi Pass: 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/tung/kaa/project/CDataCollectionDemo/build
Scanning dependencies of target target_support
[  1%] Building C object targets/esp8266/CMakeFiles/target_support.dir/target.c.o
In file included from /opt/Espressif/esp-rtos-sdk/extra_include/sys/config.h:4:0,
                 from /opt/Espressif/esp-rtos-sdk/extra_include/_ansi.h:16,
                 from /opt/Espressif/esp-rtos-sdk/extra_include/string.h:10,
                 from /home/tung/kaa/project/CDataCollectionDemo/targets/esp8266/target.c:17:
/opt/Espressif/esp-rtos-sdk/extra_include/machine/ieeefp.h:277:2: error: #error Endianess not declared!!
 #error Endianess not declared!!
  ^
In file included from /opt/Espressif/esp-rtos-sdk/include/espressif/esp_common.h:9:0,
                 from /opt/Espressif/esp-rtos-sdk/include/freertos/portmacro.h:73,
                 from /opt/Espressif/esp-rtos-sdk/include/freertos/portable.h:318,
                 from /opt/Espressif/esp-rtos-sdk/include/freertos/FreeRTOS.h:87,
                 from /home/tung/kaa/project/CDataCollectionDemo/targets/esp8266/target.c:19:
/opt/Espressif/esp-rtos-sdk/include/espressif/c_types.h:47:29: error: conflicting types for ‘size_t’
 typedef unsigned int        size_t;
                             ^
In file included from /opt/Espressif/esp-rtos-sdk/extra_include/string.h:14:0,
                 from /home/tung/kaa/project/CDataCollectionDemo/targets/esp8266/target.c:17:
/usr/lib/gcc/x86_64-linux-gnu/4.8/include/stddef.h:212:23: note: previous declaration of ‘size_t’ was here
 typedef __SIZE_TYPE__ size_t;
                       ^
In file included from /opt/Espressif/esp-rtos-sdk/include/espressif/esp_common.h:10:0,
                 from /opt/Espressif/esp-rtos-sdk/include/freertos/portmacro.h:73,
                 from /opt/Espressif/esp-rtos-sdk/include/freertos/portable.h:318,
                 from /opt/Espressif/esp-rtos-sdk/include/freertos/FreeRTOS.h:87,
                 from /home/tung/kaa/project/CDataCollectionDemo/targets/esp8266/target.c:19:
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:10:7: error: conflicting types for ‘strncpy’
 char *strncpy(char *dst, const char *src, size_t n);
       ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:12:5: error: conflicting types for ‘strncmp’
 int strncmp(const char *s1, const char *s2, size_t n);
     ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:13:8: error: conflicting types for ‘strlen’
 size_t strlen(const char *s);
        ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:16:7: error: conflicting types for ‘strncat’
 char *strncat(char *dst, const char *src, size_t count);
       ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:17:8: error: conflicting types for ‘strspn’
 size_t strspn(const char *s, const char *accept);
        ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:18:8: error: conflicting types for ‘strcspn’
 size_t strcspn(const char *s, const char *reject);
        ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:26:6: error: conflicting types for ‘bzero’
 void bzero(void *s, size_t n);
      ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:28:7: error: conflicting types for ‘memcpy’
 void *memcpy(void *dst, const void *src, size_t n);
       ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:29:7: error: conflicting types for ‘memset’
 void *memset(void *dst, int c, size_t n);
       ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:30:5: error: conflicting types for ‘memcmp’
 int memcmp(const void *m1, const void *m2, size_t n);
     ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:31:7: error: conflicting types for ‘memmove’
 void *memmove(void *dst, const void *src, size_t n);
       ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:37:5: warning: conflicting types for built-in function ‘snprintf’ [enabled by default]
 int snprintf(char *buf, unsigned int count, const char *format, ...);
     ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:41:7: warning: conflicting types for built-in function ‘malloc’ [enabled by default]
 void *malloc(size_t n);
       ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:43:7: warning: conflicting types for built-in function ‘calloc’ [enabled by default]
 void *calloc(size_t c, size_t n);
       ^
/opt/Espressif/esp-rtos-sdk/include/espressif/esp_libc.h:45:7: warning: conflicting types for built-in function ‘realloc’ [enabled by default]
 void *realloc(void *p, size_t n);
       ^
make[2]: *** [targets/esp8266/CMakeFiles/target_support.dir/target.c.o] Error 1
make[1]: *** [targets/esp8266/CMakeFiles/target_support.dir/all] Error 2
make: *** [all] Error 2
./build.sh: 52: ./build.sh: ./demo_client: not found

我所做的一切都遵循kaa文档,除了将-DKAA_PLATFORM=esp8266参数添加到build.sh文件中的cmake命令之外。你能告诉我这里有什么问题以及如何解决吗?谢谢!

更新

我在cmake命令中添加了一些参数,就像@MrKoin建议的那样,但仍然会出现错误

Cmake论点

代码语言:javascript
复制
cmake .. \
        -DCMAKE_TOOLCHAIN_FILE=../libs/kaa/toolchains/esp8266.cmake \
        -DKAA_PLATFORM=esp8266 \
        -DCMAKE_BUILD_TYPE=MinSizeRel \

输出

代码语言:javascript
复制
In file included from /home/tung/kaa/project/CDataCollectionDemo/libs/kaa/thirdparty/mbedtls/aes.c:27:0:
/opt/Espressif/crosstool-NG/builds/xtensa-lx106-elf/lib/gcc/xtensa-lx106-elf/4.8.2/include/stdint.h:9:26: fatal error: stdint.h: No such file or directory
 # include_next <stdint.h>
                          ^
compilation terminated.
make[2]: *** [libs/kaa/tools/kaa_encryption/rsa_key_gen/mbedtls/CMakeFiles/mbedtls.dir/aes.c.obj] Error 1
make[1]: *** [libs/kaa/tools/kaa_encryption/rsa_key_gen/mbedtls/CMakeFiles/mbedtls.dir/all] Error 2
make: *** [all] Error 2

好像有些图书馆不见了。我现在该怎么做?谢谢!

EN

回答 3

Stack Overflow用户

发布于 2017-02-08 10:52:42

看起来您需要在cmake参数中指定cmake工具链文件:

代码语言:javascript
复制
cmake -DCMAKE_TOOLCHAIN_FILE=../libs/kaa/toolchains/esp8266.cmake \
    -DKAA_PLATFORM=esp8266 .. 

详情请参阅文档

票数 0
EN

Stack Overflow用户

发布于 2017-03-01 22:37:15

这可能与您从Kaa网站引用的教程中的步骤5安装ESP8266 RTOS有关。

您运行了命令sed -i 's:#include "c_types.h"://#include "c_types.h":' $ESP_SDK_HOME/include/lwip/arch/cc.h

我记得我遇到了类似的(或相同的)问题,忘记执行这个命令。它注释掉与其他地方的类型声明相冲突的#include。

票数 0
EN

Stack Overflow用户

发布于 2020-04-03 14:35:01

您需要编辑build.sh文件,查找build()并更改代码:

代码语言:javascript
复制
build() {
    mkdir -p "$PROJECT_HOME/build"
    cd "$PROJECT_HOME/build"
    cmake ..\
    -DKAA_TARGET=esp8266\
    -DCMAKE_TOOLCHAIN_FILE=../libs/kaa/toolchains/esp8266.cmake \
    -DBUILD_TESTING=OFF \
    -DKAA_PLATFORM=esp8266 \
    -DBUILD_TESTING=OFF \
    -DCMAKE_BUILD_TYPE=MinSizeRel 
    make
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42096246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档