Я создал простой пример Duktape, используя C ++ Builder Сиэтл и следуйте коду в «Инициализировать контекст» из Duktape. Прекрасно компилируется при использовании классического режима. Если я переключаюсь на clang через снятие галочки Project-> Options-> C ++ Compiler-> Use ‘classic’ Borland compiler, я получаю следующую ошибку.
inttypes.h file not found on line 780 of duktape.h
Если я закомментирую включение, я получу следующие ошибки:
Unresolved external _va_copy
Unresolved external _fmin
Unresolved external _fmax
Нормальным способом было бы убедиться, что лязг -std=c99
так что нет необходимости в обнаружении устаревших типов. Обнаружение устаревших типов не всегда надежно.
Однако, если вы не можете использовать C99 / C ++ 11 по какой-либо причине, вы всегда можете отредактировать duk_config.h
заголовок напрямую (duk_config.h
присутствует с Duktape 1.3.0), который содержит всю логику обнаружения.
Других решений пока нет …