SmartThingsCommunity / st-device-sdk-c

SmartThings SDK for Direct Connected Devices for C
Other
118 stars 126 forks source link

Error When Building Core SDK on Raspberry Pi #94

Closed chrislope closed 3 years ago

chrislope commented 3 years ago

I got the following error when building the core SDK:

**In file included from src/easysetup/http/tcp/iot_easysetup_httpd.c:23: src/include/http/iot_easysetup_http.h:22:10: fatal error: iot_easysetup_http_impl.h: No such file or directory

include "iot_easysetup_http_impl.h"**

I was able to work around it by updating the path in iot_easysetup_http.h to '''/src/port/http/socket/iot_easysetup_http_impl.h'''

Building SmartThings Core SDK

make[1]: Entering directory '/home/pi/st-device-sdk-c/src/deps/json'
  CC    cJSON/cJSON_Utils.o
  CC    cJSON/test.o
  CC    cJSON/cJSON.o
make[1]: Leaving directory '/home/pi/st-device-sdk-c/src/deps/json'
make[1]: Entering directory '/home/pi/st-device-sdk-c/src/deps/libsodium'
  CC    libsodium/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256.o
  CC    libsodium/src/libsodium/crypto_auth/crypto_auth.o
  CC    libsodium/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512.o
  CC    libsodium/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256.o
  CC    libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.o
  CC    libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.o
  CC    libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.o
  CC    libsodium/src/libsodium/crypto_onetimeauth/crypto_onetimeauth.o
  CC    libsodium/src/libsodium/crypto_box/crypto_box.o
  CC    libsodium/src/libsodium/crypto_box/curve25519xchacha20poly1305/box_curve25519xchacha20poly1305.o
  CC    libsodium/src/libsodium/crypto_box/curve25519xchacha20poly1305/box_seal_curve25519xchacha20poly1305.o
  CC    libsodium/src/libsodium/crypto_box/crypto_box_easy.o
  CC    libsodium/src/libsodium/crypto_box/crypto_box_seal.o
  CC    libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305.o
  CC    libsodium/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphashx24_ref.o
  CC    libsodium/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24_ref.o
  CC    libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24.o
  CC    libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphashx24.o
  CC    libsodium/src/libsodium/crypto_shorthash/crypto_shorthash.o
  CC    libsodium/src/libsodium/crypto_hash/crypto_hash.o
  CC    libsodium/src/libsodium/crypto_hash/sha256/cp/hash_sha256_cp.o
  CC    libsodium/src/libsodium/crypto_hash/sha256/hash_sha256.o
  CC    libsodium/src/libsodium/crypto_hash/sha512/hash_sha512.o
  CC    libsodium/src/libsodium/crypto_hash/sha512/cp/hash_sha512_cp.o
  CC    libsodium/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.o
  CC    libsodium/src/libsodium/randombytes/randombytes.o
  CC    libsodium/src/libsodium/randombytes/internal/randombytes_internal_random.o
  CC    libsodium/src/libsodium/crypto_secretbox/crypto_secretbox_easy.o
  CC    libsodium/src/libsodium/crypto_secretbox/xchacha20poly1305/secretbox_xchacha20poly1305.o
  CC    libsodium/src/libsodium/crypto_secretbox/crypto_secretbox.o
  CC    libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305.o
  CC    libsodium/src/libsodium/crypto_stream/crypto_stream.o
  CC    libsodium/src/libsodium/crypto_stream/xchacha20/stream_xchacha20.o
  CC    libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-ssse3.o
  CC    libsodium/src/libsodium/crypto_stream/chacha20/dolbeau/chacha20_dolbeau-avx2.o
  CC    libsodium/src/libsodium/crypto_stream/chacha20/ref/chacha20_ref.o
  CC    libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.o
  CC    libsodium/src/libsodium/crypto_stream/salsa2012/stream_salsa2012.o
  CC    libsodium/src/libsodium/crypto_stream/salsa2012/ref/stream_salsa2012_ref.o
  CC    libsodium/src/libsodium/crypto_stream/salsa20/xmm6/salsa20_xmm6.o
  CC    libsodium/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-sse2.o
  CC    libsodium/src/libsodium/crypto_stream/salsa20/xmm6int/salsa20_xmm6int-avx2.o
  CC    libsodium/src/libsodium/crypto_stream/salsa20/ref/salsa20_ref.o
  CC    libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20.o
  CC    libsodium/src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20.o
  CC    libsodium/src/libsodium/crypto_stream/salsa208/stream_salsa208.o
  CC    libsodium/src/libsodium/crypto_stream/salsa208/ref/stream_salsa208_ref.o
  CC    libsodium/src/libsodium/crypto_pwhash/crypto_pwhash.o
  CC    libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.o
  CC    libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.o
  CC    libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.o
  CC    libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.o
  CC    libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.o
  CC    libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.o
  CC    libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ssse3.o
  CC    libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx2.o
  CC    libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-ref.o
  CC    libsodium/src/libsodium/crypto_pwhash/argon2/argon2-core.o
  CC    libsodium/src/libsodium/crypto_pwhash/argon2/argon2-fill-block-avx512f.o
  CC    libsodium/src/libsodium/crypto_pwhash/argon2/blake2b-long.o
  CC    libsodium/src/libsodium/crypto_pwhash/argon2/argon2.o
  CC    libsodium/src/libsodium/crypto_pwhash/argon2/pwhash_argon2id.o
  CC    libsodium/src/libsodium/crypto_pwhash/argon2/argon2-encoding.o
  CC    libsodium/src/libsodium/crypto_pwhash/argon2/pwhash_argon2i.o
  CC    libsodium/src/libsodium/crypto_kx/crypto_kx.o
  CC    libsodium/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.o
  CC    libsodium/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.o
  CC    libsodium/src/libsodium/crypto_aead/xchacha20poly1305/sodium/aead_xchacha20poly1305.o
  CC    libsodium/src/libsodium/crypto_sign/ed25519/sign_ed25519.o
  CC    libsodium/src/libsodium/crypto_sign/ed25519/ref10/keypair.o
  CC    libsodium/src/libsodium/crypto_sign/ed25519/ref10/sign.o
  CC    libsodium/src/libsodium/crypto_sign/ed25519/ref10/obsolete.o
  CC    libsodium/src/libsodium/crypto_sign/ed25519/ref10/open.o
  CC    libsodium/src/libsodium/crypto_sign/crypto_sign.o
  CC    libsodium/src/libsodium/sodium/codecs.o
  CC    libsodium/src/libsodium/sodium/runtime.o
  CC    libsodium/src/libsodium/sodium/utils.o
  CC    libsodium/src/libsodium/sodium/core.o
  CC    libsodium/src/libsodium/sodium/version.o
  CC    libsodium/src/libsodium/crypto_secretstream/xchacha20poly1305/secretstream_xchacha20poly1305.o
  CC    libsodium/src/libsodium/crypto_verify/sodium/verify.o
  CC    libsodium/src/libsodium/crypto_core/ed25519/ref10/ed25519_ref10.o
  CC    libsodium/src/libsodium/crypto_core/ed25519/core_ristretto255.o
  CC    libsodium/src/libsodium/crypto_core/ed25519/core_ed25519.o
  CC    libsodium/src/libsodium/crypto_core/hchacha20/core_hchacha20.o
  CC    libsodium/src/libsodium/crypto_core/salsa/ref/core_salsa_ref.o
  CC    libsodium/src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20_ref2.o
  CC    libsodium/src/libsodium/crypto_core/hsalsa20/core_hsalsa20.o
  CC    libsodium/src/libsodium/crypto_scalarmult/ed25519/ref10/scalarmult_ed25519_ref10.o
  CC    libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.o
  CC    libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.o
  CC    libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.o
  CC    libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.o
  CC    libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/x25519_ref10.o
  CC    libsodium/src/libsodium/crypto_scalarmult/crypto_scalarmult.o
  CC    libsodium/src/libsodium/crypto_scalarmult/ristretto255/ref10/scalarmult_ristretto255_ref10.o
  CC    libsodium/src/libsodium/crypto_kdf/crypto_kdf.o
  CC    libsodium/src/libsodium/crypto_kdf/blake2b/kdf_blake2b.o
  CC    libsodium/src/libsodium/crypto_generichash/crypto_generichash.o
  CC    libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ref.o
  CC    libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-sse41.o
  CC    libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-ssse3.o
  CC    libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-compress-avx2.o
  CC    libsodium/src/libsodium/crypto_generichash/blake2b/ref/generichash_blake2b.o
  CC    libsodium/src/libsodium/crypto_generichash/blake2b/ref/blake2b-ref.o
  CC    libsodium/src/libsodium/crypto_generichash/blake2b/generichash_blake2.o
make[1]: Leaving directory '/home/pi/st-device-sdk-c/src/deps/libsodium'
make[1]: Entering directory '/home/pi/st-device-sdk-c/src/deps/mbedtls'
  CC    mbedtls/library/aes.o
  CC    mbedtls/library/aesni.o
  CC    mbedtls/library/arc4.o
  CC    mbedtls/library/aria.o
  CC    mbedtls/library/asn1parse.o
  CC    mbedtls/library/asn1write.o
  CC    mbedtls/library/base64.o
  CC    mbedtls/library/bignum.o
  CC    mbedtls/library/blowfish.o
  CC    mbedtls/library/camellia.o
  CC    mbedtls/library/ccm.o
  CC    mbedtls/library/chacha20.o
  CC    mbedtls/library/chachapoly.o
  CC    mbedtls/library/cipher.o
  CC    mbedtls/library/cipher_wrap.o
  CC    mbedtls/library/cmac.o
  CC    mbedtls/library/ctr_drbg.o
  CC    mbedtls/library/des.o
  CC    mbedtls/library/dhm.o
  CC    mbedtls/library/ecdh.o
  CC    mbedtls/library/ecdsa.o
  CC    mbedtls/library/ecjpake.o
  CC    mbedtls/library/ecp.o
  CC    mbedtls/library/ecp_curves.o
  CC    mbedtls/library/entropy.o
  CC    mbedtls/library/entropy_poll.o
mbedtls/library/entropy_poll.c:24: warning: "_GNU_SOURCE" redefined
 #define _GNU_SOURCE

<command-line>: note: this is the location of the previous definition
  CC    mbedtls/library/error.o
  CC    mbedtls/library/gcm.o
  CC    mbedtls/library/havege.o
  CC    mbedtls/library/hkdf.o
  CC    mbedtls/library/hmac_drbg.o
  CC    mbedtls/library/md.o
  CC    mbedtls/library/md2.o
  CC    mbedtls/library/md4.o
  CC    mbedtls/library/md5.o
  CC    mbedtls/library/md_wrap.o
  CC    mbedtls/library/memory_buffer_alloc.o
  CC    mbedtls/library/nist_kw.o
  CC    mbedtls/library/oid.o
  CC    mbedtls/library/padlock.o
  CC    mbedtls/library/pem.o
  CC    mbedtls/library/pk.o
  CC    mbedtls/library/pk_wrap.o
  CC    mbedtls/library/pkcs12.o
  CC    mbedtls/library/pkcs5.o
  CC    mbedtls/library/pkparse.o
  CC    mbedtls/library/pkwrite.o
  CC    mbedtls/library/platform.o
  CC    mbedtls/library/platform_util.o
  CC    mbedtls/library/poly1305.o
  CC    mbedtls/library/ripemd160.o
  CC    mbedtls/library/rsa_internal.o
  CC    mbedtls/library/rsa.o
  CC    mbedtls/library/sha1.o
  CC    mbedtls/library/sha256.o
  CC    mbedtls/library/sha512.o
  CC    mbedtls/library/threading.o
  CC    mbedtls/library/timing.o
  CC    mbedtls/library/version.o
  CC    mbedtls/library/version_features.o
  CC    mbedtls/library/xtea.o
  CC    mbedtls/library/certs.o
  CC    mbedtls/library/pkcs11.o
  CC    mbedtls/library/x509.o
  CC    mbedtls/library/x509_create.o
  CC    mbedtls/library/x509_crl.o
  CC    mbedtls/library/x509_crt.o
  CC    mbedtls/library/x509_csr.o
  CC    mbedtls/library/x509write_crt.o
  CC    mbedtls/library/x509write_csr.o
  CC    mbedtls/library/debug.o
  CC    mbedtls/library/net_sockets.o
  CC    mbedtls/library/ssl_cache.o
  CC    mbedtls/library/ssl_ciphersuites.o
  CC    mbedtls/library/ssl_cli.o
  CC    mbedtls/library/ssl_cookie.o
  CC    mbedtls/library/ssl_srv.o
  CC    mbedtls/library/ssl_ticket.o
  CC    mbedtls/library/ssl_tls.o
make[1]: Leaving directory '/home/pi/st-device-sdk-c/src/deps/mbedtls'
  CC    src/iot_util.o
  CC    src/iot_root_ca.o
  CC    src/iot_api.o
  CC    src/iot_nv_data.o
  CC    src/iot_capability.o
  CC    src/iot_uuid.o
  CC    src/iot_serialize.o
  CC    src/iot_wt.o
  CC    src/iot_dump_log.o
  CC    src/iot_main.o
  CC    src/iot_log_file.o
  CC    src/deps/cbor/tinycbor/src/cborparser.o
  CC    src/deps/cbor/tinycbor/src/cborvalidation.o
  CC    src/deps/cbor/tinycbor/src/cborparser_dup_string.o
  CC    src/deps/cbor/tinycbor/src/cborencoder.o
  CC    src/deps/cbor/tinycbor/src/cborerrorstrings.o
  CC    src/deps/cbor/tinycbor/src/cbortojson.o
  CC    src/deps/cbor/tinycbor/src/cborencoder_close_container_checked.o
  CC    src/port/bsp/posix/iot_bsp_wifi_rpi.o
  CC    src/port/bsp/posix/iot_bsp_random_posix.o
  CC    src/port/bsp/posix/iot_bsp_nv_data_posix.o
  CC    src/port/bsp/posix/iot_bsp_system_rpi.o
  CC    src/port/bsp/posix/iot_bsp_debug_posix.o
  CC    src/port/bsp/posix/iot_bsp_fs_posix.o
  CC    src/port/os/posix/iot_os_util_posix.o
  CC    src/port/net/mbedtls/iot_net_mbedtls.o
  CC    src/easysetup/iot_easysetup_st_mqtt.o
  CC    src/easysetup/http/iot_easysetup_http_parser.o
  CC    src/easysetup/http/iot_easysetup_http.o
  CC    src/easysetup/http/tcp/iot_easysetup_d2d_tcp.o
  CC    src/easysetup/http/tcp/iot_easysetup_httpd.o
In file included from src/easysetup/http/tcp/iot_easysetup_httpd.c:23:
src/include/http/iot_easysetup_http.h:22:10: fatal error: iot_easysetup_http_impl.h: No such file or directory
 #include "iot_easysetup_http_impl.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [/home/pi/st-device-sdk-c/make/common.mk:7: src/easysetup/http/tcp/iot_easysetup_httpd.o] Error 1
Kwang-Hui commented 3 years ago

Hi @chrislope , Thanks for submitting issue. I think you're using Make (Not CMake) for your testing. So I tried clean build with just "make" command with commit "4367e87 Merge pull request #93 from SmartThingsCommunity/master_rel_1_6_2" But the build error isn't reproduce at my side.

As you can see in the Makefile. That is related with STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API

ifneq ($(findstring STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API, $(STDK_CONFIGS)),)
HTTP_DIR = src/port/http/socket
endif

Please check your stdkconfig file has STDK_IOT_CORE_EASYSETUP_HTTP_USE_SOCKET_API like below? https://github.com/SmartThingsCommunity/st-device-sdk-c/blob/4367e87df5538aa46bf2cd5505abb30df80fbe91/stdkconfig#L9

chrislope commented 3 years ago

Hi, @Kwang-Hui! Thank you for looking into this issue. Apparently the Makefile that I was using was modified and was missing the section you pasted above. Please go ahead and close out this issue as a "dummy at the keyboard" error, haha. I appreciate your help and apologize for any inconvenience!