error: redeclaration of enumerator for contiki os libtomcrypt library
error: redeclaration of enumerator for contiki os libtomcrypt library
我正在 CONTIKI OS 和 COOJA 模拟器中进行加密,我厌倦了使用库 libtomcrypt。我将库包含到 CONTIKI 文件夹中,但是当我厌倦调用 rsa_make_key 函数时,它给了我这个错误。提前致谢,希望尽快收到你们的来信。
> make TARGET=cooja clean
rm -f *~ *core core *.srec \
*.lst *.map \
*.cprg *.bin *.data contiki*.a *.firmware core-labels.S *.ihex *.ini \
*.ce *.co
rm -rf
rm -rf obj_cooja
> make sender-node.cooja TARGET=cooja
CC sender-node.c
In file included from ../../../core/./../apps/libtomcrypt/src/headers/tomcrypt.h:80:0,
from sender-node.c:43:
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:4:4: error: redeclaration of enumerator 'PK_PUBLIC'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:4:4: note: previous definition of 'PK_PUBLIC' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:5:4: error: redeclaration of enumerator 'PK_PRIVATE'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:5:4: note: previous definition of 'PK_PRIVATE' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:16:4: error: redeclaration of enumerator 'PKA_RSA'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:16:4: note: previous definition of 'PKA_RSA' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:17:4: error: redeclaration of enumerator 'PKA_DSA'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:17:4: note: previous definition of 'PKA_DSA' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:20:16: error: redefinition of 'struct Oid'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:20:16: note: originally defined here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:24:3: error: conflicting types for 'oid_st'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:24:3: note: previous declaration of 'oid_st' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:26:5: error: conflicting types for 'pk_get_oid'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:26:5: note: previous declaration of 'pk_get_oid' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:32:16: error: redefinition of 'struct Rsa_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:32:16: note: originally defined here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:51:3: error: conflicting types for 'rsa_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:51:3: note: previous declaration of 'rsa_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:53:5: error: conflicting types for 'rsa_make_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:53:5: note: previous declaration of 'rsa_make_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:55:5: error: conflicting types for 'rsa_get_size'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:55:5: note: previous declaration of 'rsa_get_size' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:57:5: error: conflicting types for 'rsa_exptmod'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:57:5: note: previous declaration of 'rsa_exptmod' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:61:6: error: conflicting types for 'rsa_free'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:61:6: note: previous declaration of 'rsa_free' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:80:5: error: conflicting types for 'rsa_encrypt_key_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:80:5: note: previous declaration of 'rsa_encrypt_key_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:85:5: error: conflicting types for 'rsa_decrypt_key_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:85:5: note: previous declaration of 'rsa_decrypt_key_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:91:5: error: conflicting types for 'rsa_sign_hash_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:91:5: note: previous declaration of 'rsa_sign_hash_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:98:5: error: conflicting types for 'rsa_verify_hash_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:98:5: note: previous declaration of 'rsa_verify_hash_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:104:5: error: conflicting types for 'rsa_sign_saltlen_get_max_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:104:5: note: previous declaration of 'rsa_sign_saltlen_get_max_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:107:5: error: conflicting types for 'rsa_export'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:107:5: note: previous declaration of 'rsa_export' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:108:5: error: conflicting types for 'rsa_import'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:108:5: note: previous declaration of 'rsa_import' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:170:16: error: redefinition of 'struct Dh_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:170:16: note: originally defined here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:174:3: error: conflicting types for 'dh_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:174:3: note: previous declaration of 'dh_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:178:5: error: conflicting types for 'dh_get_size'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:178:5: note: previous declaration of 'dh_get_size' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:180:5: error: conflicting types for 'dh_make_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:180:5: note: previous declaration of 'dh_make_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:181:6: error: conflicting types for 'dh_free'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:181:6: note: previous declaration of 'dh_free' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:183:5: error: conflicting types for 'dh_export'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:183:5: note: previous declaration of 'dh_export' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:184:5: error: conflicting types for 'dh_import'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:184:5: note: previous declaration of 'dh_import' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:186:5: error: conflicting types for 'dh_shared_secret'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:186:5: note: previous declaration of 'dh_shared_secret' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:189:5: error: conflicting types for 'dh_encrypt_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:189:5: note: previous declaration of 'dh_encrypt_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:194:5: error: conflicting types for 'dh_decrypt_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:194:5: note: previous declaration of 'dh_decrypt_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:198:5: error: conflicting types for 'dh_sign_hash'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:198:5: note: previous declaration of 'dh_sign_hash' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:202:5: error: conflicting types for 'dh_verify_hash'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:202:5: note: previous declaration of 'dh_verify_hash' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:241:3: error: conflicting types for 'ltc_ecc_set_type'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:241:3: note: previous declaration of 'ltc_ecc_set_type' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:253:3: error: conflicting types for 'ecc_point'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:253:3: note: previous declaration of 'ecc_point' was here
In file included from ../../../core/./../apps/libtomcrypt/src/headers/tomcrypt.h:80:0,
from sender-node.c:43:
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:271:3: error: conflicting types for 'ecc_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:271:3: note: previous declaration of 'ecc_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:274:31: error: conflicting types for 'ltc_ecc_sets'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:274:31: note: previous declaration of 'ltc_ecc_sets' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:278:6: error: conflicting types for 'ecc_get_size'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:278:6: note: previous declaration of 'ecc_get_size' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:280:6: error: conflicting types for 'ecc_make_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:280:6: note: previous declaration of 'ecc_make_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:281:6: error: conflicting types for 'ecc_make_key_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:281:6: note: previous declaration of 'ecc_make_key_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:282:6: error: conflicting types for 'ecc_free'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:282:6: note: previous declaration of 'ecc_free' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:284:6: error: conflicting types for 'ecc_export'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:284:6: note: previous declaration of 'ecc_export' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:285:6: error: conflicting types for 'ecc_import'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:285:6: note: previous declaration of 'ecc_import' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:286:6: error: conflicting types for 'ecc_import_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:286:6: note: previous declaration of 'ecc_import_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:288:5: error: conflicting types for 'ecc_ansi_x963_export'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:288:5: note: previous declaration of 'ecc_ansi_x963_export' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:289:5: error: conflicting types for 'ecc_ansi_x963_import'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:289:5: note: previous declaration of 'ecc_ansi_x963_import' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:290:5: error: conflicting types for 'ecc_ansi_x963_import_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:290:5: note: previous declaration of 'ecc_ansi_x963_import_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:292:6: error: conflicting types for 'ecc_shared_secret'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:292:6: note: previous declaration of 'ecc_shared_secret' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:295:6: error: conflicting types for 'ecc_encrypt_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:295:6: note: previous declaration of 'ecc_encrypt_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:300:6: error: conflicting types for 'ecc_decrypt_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:300:6: note: previous declaration of 'ecc_decrypt_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:304:5: error: conflicting types for 'ecc_sign_hash_raw'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:304:5: note: previous declaration of 'ecc_sign_hash_raw' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:308:6: error: conflicting types for 'ecc_sign_hash'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:308:6: note: previous declaration of 'ecc_sign_hash' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:312:5: error: conflicting types for 'ecc_verify_hash_raw'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:312:5: note: previous declaration of 'ecc_verify_hash_raw' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:316:6: error: conflicting types for 'ecc_verify_hash'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:316:6: note: previous declaration of 'ecc_verify_hash' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:321:12: error: conflicting types for 'ltc_ecc_new_point'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:321:12: note: previous declaration of 'ltc_ecc_new_point' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:322:12: error: conflicting types for 'ltc_ecc_del_point'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:322:12: note: previous declaration of 'ltc_ecc_del_point' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:328:5: error: conflicting types for 'ltc_ecc_projective_dbl_point'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:328:5: note: previous declaration of 'ltc_ecc_projective_dbl_point' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:331:5: error: conflicting types for 'ltc_ecc_projective_add_point'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:331:5: note: previous declaration of 'ltc_ecc_projective_add_point' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:349:5: error: conflicting types for 'ltc_ecc_mulmod'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:349:5: note: previous declaration of 'ltc_ecc_mulmod' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:353:5: error: conflicting types for 'ltc_ecc_mul2add'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:353:5: note: previous declaration of 'ltc_ecc_mul2add' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:369:5: error: conflicting types for 'ltc_ecc_map'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:369:5: note: previous declaration of 'ltc_ecc_map' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:403:3: error: conflicting types for 'dsa_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:403:3: note: previous declaration of 'dsa_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:405:5: error: conflicting types for 'dsa_make_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:405:5: note: previous declaration of 'dsa_make_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:406:6: error: conflicting types for 'dsa_free'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:406:6: note: previous declaration of 'dsa_free' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:408:5: error: conflicting types for 'dsa_sign_hash_raw'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:408:5: note: previous declaration of 'dsa_sign_hash_raw' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:412:5: error: conflicting types for 'dsa_sign_hash'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:412:5: note: previous declaration of 'dsa_sign_hash' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:416:5: error: conflicting types for 'dsa_verify_hash_raw'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:416:5: note: previous declaration of 'dsa_verify_hash_raw' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:420:5: error: conflicting types for 'dsa_verify_hash'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:420:5: note: previous declaration of 'dsa_verify_hash' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:424:5: error: conflicting types for 'dsa_encrypt_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:424:5: note: previous declaration of 'dsa_encrypt_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:429:5: error: conflicting types for 'dsa_decrypt_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:429:5: note: previous declaration of 'dsa_decrypt_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:433:5: error: conflicting types for 'dsa_import'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:433:5: note: previous declaration of 'dsa_import' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:434:5: error: conflicting types for 'dsa_export'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:434:5: note: previous declaration of 'dsa_export' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:435:5: error: conflicting types for 'dsa_verify_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:435:5: note: previous declaration of 'dsa_verify_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:437:5: error: conflicting types for 'dsa_shared_secret'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:437:5: note: previous declaration of 'dsa_shared_secret' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:445:14: error: nested redefinition of 'enum ltc_asn1_type_'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:445:14: error: redeclaration of 'enum ltc_asn1_type_'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:445:14: note: originally defined here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:447:2: error: redeclaration of enumerator 'LTC_ASN1_EOL'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:447:2: note: previous definition of 'LTC_ASN1_EOL' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:448:2: error: redeclaration of enumerator 'LTC_ASN1_BOOLEAN'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:448:2: note: previous definition of 'LTC_ASN1_BOOLEAN' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:449:2: error: redeclaration of enumerator 'LTC_ASN1_INTEGER'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:449:2: note: previous definition of 'LTC_ASN1_INTEGER' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:450:2: error: redeclaration of enumerator 'LTC_ASN1_SHORT_INTEGER'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:450:2: note: previous definition of 'LTC_ASN1_SHORT_INTEGER' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:451:2: error: redeclaration of enumerator 'LTC_ASN1_BIT_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:451:2: note: previous definition of 'LTC_ASN1_BIT_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:453:2: error: redeclaration of enumerator 'LTC_ASN1_OCTET_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:453:2: note: previous definition of 'LTC_ASN1_OCTET_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:454:2: error: redeclaration of enumerator 'LTC_ASN1_NULL'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:454:2: note: previous definition of 'LTC_ASN1_NULL' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:455:2: error: redeclaration of enumerator 'LTC_ASN1_OBJECT_IDENTIFIER'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:455:2: note: previous definition of 'LTC_ASN1_OBJECT_IDENTIFIER' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:456:2: error: redeclaration of enumerator 'LTC_ASN1_IA5_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:456:2: note: previous definition of 'LTC_ASN1_IA5_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:457:2: error: redeclaration of enumerator 'LTC_ASN1_PRINTABLE_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:457:2: note: previous definition of 'LTC_ASN1_PRINTABLE_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:459:2: error: redeclaration of enumerator 'LTC_ASN1_UTF8_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:459:2: note: previous definition of 'LTC_ASN1_UTF8_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:460:2: error: redeclaration of enumerator 'LTC_ASN1_UTCTIME'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:460:2: note: previous definition of 'LTC_ASN1_UTCTIME' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:461:2: error: redeclaration of enumerator 'LTC_ASN1_CHOICE'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:461:2: note: previous definition of 'LTC_ASN1_CHOICE' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:462:2: error: redeclaration of enumerator 'LTC_ASN1_SEQUENCE'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:462:2: note: previous definition of 'LTC_ASN1_SEQUENCE' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:463:2: error: redeclaration of enumerator 'LTC_ASN1_SET'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:463:2: note: previous definition of 'LTC_ASN1_SET' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:465:2: error: redeclaration of enumerator 'LTC_ASN1_SETOF'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:465:2: note: previous definition of 'LTC_ASN1_SETOF' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:466:2: error: redeclaration of enumerator 'LTC_ASN1_RAW_BIT_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:466:2: note: previous definition of 'LTC_ASN1_RAW_BIT_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:467:2: error: redeclaration of enumerator 'LTC_ASN1_TELETEX_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:467:2: note: previous definition of 'LTC_ASN1_TELETEX_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:468:2: error: redeclaration of enumerator 'LTC_ASN1_CONSTRUCTED'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:468:2: note: previous definition of 'LTC_ASN1_CONSTRUCTED' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:469:2: error: redeclaration of enumerator 'LTC_ASN1_CONTEXT_SPECIFIC'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:469:2: note: previous definition of 'LTC_ASN1_CONTEXT_SPECIFIC' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:473:16: error: redefinition of 'struct ltc_asn1_list_'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:473:16: note: originally defined here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:484:3: error: conflicting types for 'ltc_asn1_list'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:484:3: note: previous declaration of 'ltc_asn1_list' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:497:5: error: conflicting types for 'der_encode_sequence_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:497:5: note: previous declaration of 'der_encode_sequence_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:502:5: error: conflicting types for 'der_decode_sequence_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:502:5: note: previous declaration of 'der_decode_sequence_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:507:5: error: conflicting types for 'der_length_sequence'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:507:5: note: previous declaration of 'der_length_sequence' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:515:5: error: conflicting types for 'der_decode_subject_public_key_info'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:515:5: note: previous declaration of 'der_decode_subject_public_key_info' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:522:5: error: conflicting types for 'der_encode_set'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:522:5: note: previous declaration of 'der_encode_set' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:525:5: error: conflicting types for 'der_encode_setof'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:525:5: note: previous declaration of 'der_encode_setof' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:533:6: error: conflicting types for 'der_decode_sequence_flexi'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:533:6: note: previous declaration of 'der_decode_sequence_flexi' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:535:6: error: conflicting types for 'der_sequence_free'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:535:6: note: previous declaration of 'der_sequence_free' was here
In file included from ../../../core/./../apps/libtomcrypt/src/headers/tomcrypt.h:80:0,
from sender-node.c:43:
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:624:5: error: conflicting types for 'der_decode_choice'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:624:5: note: previous declaration of 'der_decode_choice' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:638:3: error: conflicting types for 'ltc_utctime'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:638:3: note: previous declaration of 'ltc_utctime' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:640:5: error: conflicting types for 'der_encode_utctime'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:640:5: note: previous declaration of 'der_encode_utctime' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:643:5: error: conflicting types for 'der_decode_utctime'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:643:5: note: previous declaration of 'der_decode_utctime' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:646:5: error: conflicting types for 'der_length_utctime'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:646:5: note: previous declaration of 'der_length_utctime' was here
make: *** [sender-node.co] Error 1
Process returned error code 2
这是我厌倦调用 functionprng_state* prng;
的部分
prng_state* prng;
rsa_key* key;
int result = rsa_make_key(
prng,
0,
rsa_get_size(key),
65537,
key);
我还在代码中包含了库的 tomcrypt.h
#include "../apps/libtomcrypt/src/headers/tomcrypt.h"
我想 tomcrypt.h
或 `tomcrypt_pk.h" 文件被多次包含,因此同样的事情被定义了多次。
如果是这个原因,我会在 tomcrypt.h
的顶部和末尾分别添加以下行。
顶部:
#ifndef _TOMCRYPT_H
#define _TOMCRYPT_H
最后:
#endif
为 tomcat_pk.h
重复此操作:
#ifndef _TOMCRYPT_PK_H
#define _TOMCRYPT_PK_H
...
#endif
如果代码随后编译,那么问题是同一个头文件在编译单元中被多次包含(直接或间接)也可能适用于其他头文件,例如tomcrypt_pk.h
。因此,您还可以检查是否直接在 .c
文件中包含 tomcrypt_pk.h
,而另一个头文件(例如 tomcrypt.h
)也包含此文件。
如果是这种情况,您有两种主要的解决方法:(1) 删除不必要的 include 语句,(2) 保护 include 文件不被多次解释,例如通过用 #ifndef - #define
语句包围定义。我更喜欢选项 (1) 而不是选项 (2)。
请注意 - 正如 StoryTeller 所指出的 - 不鼓励编辑第三方库文件,甚至不鼓励引入此类 #ifndef-#define
语句。如果您无法按照选项 (1) 进行操作,您仍然可以在文件中包围相应的 #include
语句,例如
// in myFile.c:
#ifndef _TOMCRYPT_PK_H
#define _TOMCRYPT_PH_H
#include "tomcrypt_pk.h"
#endif
我正在 CONTIKI OS 和 COOJA 模拟器中进行加密,我厌倦了使用库 libtomcrypt。我将库包含到 CONTIKI 文件夹中,但是当我厌倦调用 rsa_make_key 函数时,它给了我这个错误。提前致谢,希望尽快收到你们的来信。
> make TARGET=cooja clean
rm -f *~ *core core *.srec \
*.lst *.map \
*.cprg *.bin *.data contiki*.a *.firmware core-labels.S *.ihex *.ini \
*.ce *.co
rm -rf
rm -rf obj_cooja
> make sender-node.cooja TARGET=cooja
CC sender-node.c
In file included from ../../../core/./../apps/libtomcrypt/src/headers/tomcrypt.h:80:0,
from sender-node.c:43:
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:4:4: error: redeclaration of enumerator 'PK_PUBLIC'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:4:4: note: previous definition of 'PK_PUBLIC' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:5:4: error: redeclaration of enumerator 'PK_PRIVATE'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:5:4: note: previous definition of 'PK_PRIVATE' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:16:4: error: redeclaration of enumerator 'PKA_RSA'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:16:4: note: previous definition of 'PKA_RSA' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:17:4: error: redeclaration of enumerator 'PKA_DSA'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:17:4: note: previous definition of 'PKA_DSA' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:20:16: error: redefinition of 'struct Oid'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:20:16: note: originally defined here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:24:3: error: conflicting types for 'oid_st'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:24:3: note: previous declaration of 'oid_st' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:26:5: error: conflicting types for 'pk_get_oid'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:26:5: note: previous declaration of 'pk_get_oid' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:32:16: error: redefinition of 'struct Rsa_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:32:16: note: originally defined here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:51:3: error: conflicting types for 'rsa_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:51:3: note: previous declaration of 'rsa_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:53:5: error: conflicting types for 'rsa_make_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:53:5: note: previous declaration of 'rsa_make_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:55:5: error: conflicting types for 'rsa_get_size'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:55:5: note: previous declaration of 'rsa_get_size' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:57:5: error: conflicting types for 'rsa_exptmod'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:57:5: note: previous declaration of 'rsa_exptmod' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:61:6: error: conflicting types for 'rsa_free'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:61:6: note: previous declaration of 'rsa_free' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:80:5: error: conflicting types for 'rsa_encrypt_key_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:80:5: note: previous declaration of 'rsa_encrypt_key_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:85:5: error: conflicting types for 'rsa_decrypt_key_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:85:5: note: previous declaration of 'rsa_decrypt_key_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:91:5: error: conflicting types for 'rsa_sign_hash_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:91:5: note: previous declaration of 'rsa_sign_hash_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:98:5: error: conflicting types for 'rsa_verify_hash_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:98:5: note: previous declaration of 'rsa_verify_hash_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:104:5: error: conflicting types for 'rsa_sign_saltlen_get_max_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:104:5: note: previous declaration of 'rsa_sign_saltlen_get_max_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:107:5: error: conflicting types for 'rsa_export'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:107:5: note: previous declaration of 'rsa_export' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:108:5: error: conflicting types for 'rsa_import'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:108:5: note: previous declaration of 'rsa_import' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:170:16: error: redefinition of 'struct Dh_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:170:16: note: originally defined here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:174:3: error: conflicting types for 'dh_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:174:3: note: previous declaration of 'dh_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:178:5: error: conflicting types for 'dh_get_size'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:178:5: note: previous declaration of 'dh_get_size' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:180:5: error: conflicting types for 'dh_make_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:180:5: note: previous declaration of 'dh_make_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:181:6: error: conflicting types for 'dh_free'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:181:6: note: previous declaration of 'dh_free' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:183:5: error: conflicting types for 'dh_export'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:183:5: note: previous declaration of 'dh_export' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:184:5: error: conflicting types for 'dh_import'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:184:5: note: previous declaration of 'dh_import' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:186:5: error: conflicting types for 'dh_shared_secret'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:186:5: note: previous declaration of 'dh_shared_secret' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:189:5: error: conflicting types for 'dh_encrypt_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:189:5: note: previous declaration of 'dh_encrypt_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:194:5: error: conflicting types for 'dh_decrypt_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:194:5: note: previous declaration of 'dh_decrypt_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:198:5: error: conflicting types for 'dh_sign_hash'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:198:5: note: previous declaration of 'dh_sign_hash' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:202:5: error: conflicting types for 'dh_verify_hash'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:202:5: note: previous declaration of 'dh_verify_hash' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:241:3: error: conflicting types for 'ltc_ecc_set_type'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:241:3: note: previous declaration of 'ltc_ecc_set_type' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:253:3: error: conflicting types for 'ecc_point'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:253:3: note: previous declaration of 'ecc_point' was here
In file included from ../../../core/./../apps/libtomcrypt/src/headers/tomcrypt.h:80:0,
from sender-node.c:43:
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:271:3: error: conflicting types for 'ecc_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:271:3: note: previous declaration of 'ecc_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:274:31: error: conflicting types for 'ltc_ecc_sets'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:274:31: note: previous declaration of 'ltc_ecc_sets' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:278:6: error: conflicting types for 'ecc_get_size'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:278:6: note: previous declaration of 'ecc_get_size' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:280:6: error: conflicting types for 'ecc_make_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:280:6: note: previous declaration of 'ecc_make_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:281:6: error: conflicting types for 'ecc_make_key_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:281:6: note: previous declaration of 'ecc_make_key_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:282:6: error: conflicting types for 'ecc_free'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:282:6: note: previous declaration of 'ecc_free' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:284:6: error: conflicting types for 'ecc_export'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:284:6: note: previous declaration of 'ecc_export' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:285:6: error: conflicting types for 'ecc_import'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:285:6: note: previous declaration of 'ecc_import' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:286:6: error: conflicting types for 'ecc_import_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:286:6: note: previous declaration of 'ecc_import_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:288:5: error: conflicting types for 'ecc_ansi_x963_export'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:288:5: note: previous declaration of 'ecc_ansi_x963_export' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:289:5: error: conflicting types for 'ecc_ansi_x963_import'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:289:5: note: previous declaration of 'ecc_ansi_x963_import' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:290:5: error: conflicting types for 'ecc_ansi_x963_import_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:290:5: note: previous declaration of 'ecc_ansi_x963_import_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:292:6: error: conflicting types for 'ecc_shared_secret'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:292:6: note: previous declaration of 'ecc_shared_secret' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:295:6: error: conflicting types for 'ecc_encrypt_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:295:6: note: previous declaration of 'ecc_encrypt_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:300:6: error: conflicting types for 'ecc_decrypt_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:300:6: note: previous declaration of 'ecc_decrypt_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:304:5: error: conflicting types for 'ecc_sign_hash_raw'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:304:5: note: previous declaration of 'ecc_sign_hash_raw' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:308:6: error: conflicting types for 'ecc_sign_hash'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:308:6: note: previous declaration of 'ecc_sign_hash' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:312:5: error: conflicting types for 'ecc_verify_hash_raw'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:312:5: note: previous declaration of 'ecc_verify_hash_raw' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:316:6: error: conflicting types for 'ecc_verify_hash'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:316:6: note: previous declaration of 'ecc_verify_hash' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:321:12: error: conflicting types for 'ltc_ecc_new_point'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:321:12: note: previous declaration of 'ltc_ecc_new_point' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:322:12: error: conflicting types for 'ltc_ecc_del_point'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:322:12: note: previous declaration of 'ltc_ecc_del_point' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:328:5: error: conflicting types for 'ltc_ecc_projective_dbl_point'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:328:5: note: previous declaration of 'ltc_ecc_projective_dbl_point' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:331:5: error: conflicting types for 'ltc_ecc_projective_add_point'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:331:5: note: previous declaration of 'ltc_ecc_projective_add_point' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:349:5: error: conflicting types for 'ltc_ecc_mulmod'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:349:5: note: previous declaration of 'ltc_ecc_mulmod' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:353:5: error: conflicting types for 'ltc_ecc_mul2add'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:353:5: note: previous declaration of 'ltc_ecc_mul2add' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:369:5: error: conflicting types for 'ltc_ecc_map'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:369:5: note: previous declaration of 'ltc_ecc_map' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:403:3: error: conflicting types for 'dsa_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:403:3: note: previous declaration of 'dsa_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:405:5: error: conflicting types for 'dsa_make_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:405:5: note: previous declaration of 'dsa_make_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:406:6: error: conflicting types for 'dsa_free'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:406:6: note: previous declaration of 'dsa_free' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:408:5: error: conflicting types for 'dsa_sign_hash_raw'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:408:5: note: previous declaration of 'dsa_sign_hash_raw' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:412:5: error: conflicting types for 'dsa_sign_hash'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:412:5: note: previous declaration of 'dsa_sign_hash' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:416:5: error: conflicting types for 'dsa_verify_hash_raw'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:416:5: note: previous declaration of 'dsa_verify_hash_raw' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:420:5: error: conflicting types for 'dsa_verify_hash'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:420:5: note: previous declaration of 'dsa_verify_hash' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:424:5: error: conflicting types for 'dsa_encrypt_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:424:5: note: previous declaration of 'dsa_encrypt_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:429:5: error: conflicting types for 'dsa_decrypt_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:429:5: note: previous declaration of 'dsa_decrypt_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:433:5: error: conflicting types for 'dsa_import'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:433:5: note: previous declaration of 'dsa_import' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:434:5: error: conflicting types for 'dsa_export'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:434:5: note: previous declaration of 'dsa_export' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:435:5: error: conflicting types for 'dsa_verify_key'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:435:5: note: previous declaration of 'dsa_verify_key' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:437:5: error: conflicting types for 'dsa_shared_secret'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:437:5: note: previous declaration of 'dsa_shared_secret' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:445:14: error: nested redefinition of 'enum ltc_asn1_type_'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:445:14: error: redeclaration of 'enum ltc_asn1_type_'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:445:14: note: originally defined here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:447:2: error: redeclaration of enumerator 'LTC_ASN1_EOL'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:447:2: note: previous definition of 'LTC_ASN1_EOL' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:448:2: error: redeclaration of enumerator 'LTC_ASN1_BOOLEAN'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:448:2: note: previous definition of 'LTC_ASN1_BOOLEAN' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:449:2: error: redeclaration of enumerator 'LTC_ASN1_INTEGER'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:449:2: note: previous definition of 'LTC_ASN1_INTEGER' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:450:2: error: redeclaration of enumerator 'LTC_ASN1_SHORT_INTEGER'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:450:2: note: previous definition of 'LTC_ASN1_SHORT_INTEGER' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:451:2: error: redeclaration of enumerator 'LTC_ASN1_BIT_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:451:2: note: previous definition of 'LTC_ASN1_BIT_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:453:2: error: redeclaration of enumerator 'LTC_ASN1_OCTET_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:453:2: note: previous definition of 'LTC_ASN1_OCTET_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:454:2: error: redeclaration of enumerator 'LTC_ASN1_NULL'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:454:2: note: previous definition of 'LTC_ASN1_NULL' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:455:2: error: redeclaration of enumerator 'LTC_ASN1_OBJECT_IDENTIFIER'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:455:2: note: previous definition of 'LTC_ASN1_OBJECT_IDENTIFIER' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:456:2: error: redeclaration of enumerator 'LTC_ASN1_IA5_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:456:2: note: previous definition of 'LTC_ASN1_IA5_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:457:2: error: redeclaration of enumerator 'LTC_ASN1_PRINTABLE_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:457:2: note: previous definition of 'LTC_ASN1_PRINTABLE_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:459:2: error: redeclaration of enumerator 'LTC_ASN1_UTF8_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:459:2: note: previous definition of 'LTC_ASN1_UTF8_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:460:2: error: redeclaration of enumerator 'LTC_ASN1_UTCTIME'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:460:2: note: previous definition of 'LTC_ASN1_UTCTIME' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:461:2: error: redeclaration of enumerator 'LTC_ASN1_CHOICE'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:461:2: note: previous definition of 'LTC_ASN1_CHOICE' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:462:2: error: redeclaration of enumerator 'LTC_ASN1_SEQUENCE'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:462:2: note: previous definition of 'LTC_ASN1_SEQUENCE' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:463:2: error: redeclaration of enumerator 'LTC_ASN1_SET'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:463:2: note: previous definition of 'LTC_ASN1_SET' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:465:2: error: redeclaration of enumerator 'LTC_ASN1_SETOF'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:465:2: note: previous definition of 'LTC_ASN1_SETOF' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:466:2: error: redeclaration of enumerator 'LTC_ASN1_RAW_BIT_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:466:2: note: previous definition of 'LTC_ASN1_RAW_BIT_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:467:2: error: redeclaration of enumerator 'LTC_ASN1_TELETEX_STRING'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:467:2: note: previous definition of 'LTC_ASN1_TELETEX_STRING' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:468:2: error: redeclaration of enumerator 'LTC_ASN1_CONSTRUCTED'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:468:2: note: previous definition of 'LTC_ASN1_CONSTRUCTED' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:469:2: error: redeclaration of enumerator 'LTC_ASN1_CONTEXT_SPECIFIC'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:469:2: note: previous definition of 'LTC_ASN1_CONTEXT_SPECIFIC' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:473:16: error: redefinition of 'struct ltc_asn1_list_'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:473:16: note: originally defined here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:484:3: error: conflicting types for 'ltc_asn1_list'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:484:3: note: previous declaration of 'ltc_asn1_list' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:497:5: error: conflicting types for 'der_encode_sequence_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:497:5: note: previous declaration of 'der_encode_sequence_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:502:5: error: conflicting types for 'der_decode_sequence_ex'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:502:5: note: previous declaration of 'der_decode_sequence_ex' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:507:5: error: conflicting types for 'der_length_sequence'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:507:5: note: previous declaration of 'der_length_sequence' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:515:5: error: conflicting types for 'der_decode_subject_public_key_info'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:515:5: note: previous declaration of 'der_decode_subject_public_key_info' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:522:5: error: conflicting types for 'der_encode_set'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:522:5: note: previous declaration of 'der_encode_set' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:525:5: error: conflicting types for 'der_encode_setof'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:525:5: note: previous declaration of 'der_encode_setof' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:533:6: error: conflicting types for 'der_decode_sequence_flexi'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:533:6: note: previous declaration of 'der_decode_sequence_flexi' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:535:6: error: conflicting types for 'der_sequence_free'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:535:6: note: previous declaration of 'der_sequence_free' was here
In file included from ../../../core/./../apps/libtomcrypt/src/headers/tomcrypt.h:80:0,
from sender-node.c:43:
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:624:5: error: conflicting types for 'der_decode_choice'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:624:5: note: previous declaration of 'der_decode_choice' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:638:3: error: conflicting types for 'ltc_utctime'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:638:3: note: previous declaration of 'ltc_utctime' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:640:5: error: conflicting types for 'der_encode_utctime'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:640:5: note: previous declaration of 'der_encode_utctime' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:643:5: error: conflicting types for 'der_decode_utctime'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:643:5: note: previous declaration of 'der_decode_utctime' was here
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:646:5: error: conflicting types for 'der_length_utctime'
../../../core/./../apps/libtomcrypt/src/headers/tomcrypt_pk.h:646:5: note: previous declaration of 'der_length_utctime' was here
make: *** [sender-node.co] Error 1
Process returned error code 2
这是我厌倦调用 functionprng_state* prng;
的部分 prng_state* prng;
rsa_key* key;
int result = rsa_make_key(
prng,
0,
rsa_get_size(key),
65537,
key);
我还在代码中包含了库的 tomcrypt.h
#include "../apps/libtomcrypt/src/headers/tomcrypt.h"
我想 tomcrypt.h
或 `tomcrypt_pk.h" 文件被多次包含,因此同样的事情被定义了多次。
如果是这个原因,我会在 tomcrypt.h
的顶部和末尾分别添加以下行。
顶部:
#ifndef _TOMCRYPT_H
#define _TOMCRYPT_H
最后:
#endif
为 tomcat_pk.h
重复此操作:
#ifndef _TOMCRYPT_PK_H
#define _TOMCRYPT_PK_H
...
#endif
如果代码随后编译,那么问题是同一个头文件在编译单元中被多次包含(直接或间接)也可能适用于其他头文件,例如tomcrypt_pk.h
。因此,您还可以检查是否直接在 .c
文件中包含 tomcrypt_pk.h
,而另一个头文件(例如 tomcrypt.h
)也包含此文件。
如果是这种情况,您有两种主要的解决方法:(1) 删除不必要的 include 语句,(2) 保护 include 文件不被多次解释,例如通过用 #ifndef - #define
语句包围定义。我更喜欢选项 (1) 而不是选项 (2)。
请注意 - 正如 StoryTeller 所指出的 - 不鼓励编辑第三方库文件,甚至不鼓励引入此类 #ifndef-#define
语句。如果您无法按照选项 (1) 进行操作,您仍然可以在文件中包围相应的 #include
语句,例如
// in myFile.c:
#ifndef _TOMCRYPT_PK_H
#define _TOMCRYPT_PH_H
#include "tomcrypt_pk.h"
#endif