diff --git a/libasn1compiler/asn1c_save.c b/libasn1compiler/asn1c_save.c index 5e425d65fa3cc2f4c8368ff6eb7c1c8e6340ff9d..3d806bc02eeae9170c1f7cc3a649c898d4738e01 100644 --- a/libasn1compiler/asn1c_save.c +++ b/libasn1compiler/asn1c_save.c @@ -176,6 +176,8 @@ asn1c_save_streams(arg_t *arg) { "#define\t_%s_H_\n" "\n", header_id, header_id); + fprintf(fp_h, "#ifdef __cplusplus\nextern \"C\" {\n#endif\n\n"); + fprintf(fp_h, "#include <constr_TYPE.h>\n\n"); TQ_FOR(ot, &(cs->targets[OT_DEPS]), next) @@ -195,7 +197,9 @@ asn1c_save_streams(arg_t *arg) { assert(OT_MAX == 5); - fprintf(fp_h, "\n#endif\t/* _%s_H_ */\n", header_id); + fprintf(fp_h, "\n#ifdef __cplusplus\n}\n#endif\n\n" + "#endif\t/* _%s_H_ */\n", + header_id); fclose(fp_c); fclose(fp_h);