Возможно ли выполнить emcc (из emscripten) в исполняемом компиляторе clang?Использовать emscripten из Clang скомпилированного исполняемого файла
Я попытался, но результат:
ERROR root: pdfium_test: Input file has an unknown suffix, don't know what to do with it!
Я стараюсь, что, потому что я не в состоянии найти решение, чтобы скомпилировать проект PDFium с EMCC, но с лязгом все нормально.
Причина заключается в том:
Emscripten является кросс-компилятор, и, следовательно, ОС-специфические макросы из хост-системы должны все быть определено при создании C/C++ код. Если вы посмотрите на инструменты/shared.py, Emscripten уделяет особое внимание -U всех принимающих конкретных флагов, Clang может автоматически попытаться добавить.
Но есть много платформы конкретного кода в PDFium, так что я получаю:
#error Sorry, can not figure out target OS. Please specify _FX_OS_ macro.
Этот макрос определяется если __linux__ макросъемки (например) определяется, вот фрагмент кода:
#ifndef _FX_OS_
#if defined(__ANDROID__)
#define _FX_OS_ _FX_ANDROID_
#define _FXM_PLATFORM_ _FXM_PLATFORM_ANDROID_
#elif defined(_WIN32)
#define _FX_OS_ _FX_WIN32_DESKTOP_
#define _FXM_PLATFORM_ _FXM_PLATFORM_WINDOWS_
#elif defined(_WIN64)
#define _FX_OS_ _FX_WIN64_DESKTOP_
#define _FXM_PLATFORM_ _FXM_PLATFORM_WINDOWS_
#elif defined(__linux__)
#define _FX_OS_ _FX_LINUX_DESKTOP_
#define _FXM_PLATFORM_ _FXM_PLATFORM_LINUX_
#elif defined(__APPLE__)
#define _FX_OS_ _FX_MACOSX_
#define _FXM_PLATFORM_ _FXM_PLATFORM_APPLE_
#endif
#endif // _FX_OS_
#if !defined(_FX_OS_) || _FX_OS_ == 0
#error Sorry, can not figure out target OS. Please specify _FX_OS_ macro.
#endif
Итак, я попытался определить вручную __linux__ макрос:
emmake make -j5 BUILDTYPE=Release __linux__=1
... но та же ошибка. Может быть, это не лучший способ?
Заранее спасибо.
EDIT: Ответ JF Bastien мне очень помогает. Но теперь у меня такая ошибка сборки, и я знаю, что делать. Если кто-то есть идея ...
clang-3.7: warning: argument unused during compilation: '-msse2'
clang-3.7: warning: argument unused during compilation: '-mmmx'
error: unknown FP unit 'sse'
EDIT 2: решение для указанной задачи: удалить "-msse2, -mmmx и -mfpmath" флаги v8/строить/toolchain.gypi
Большое спасибо за ваш ответ. Я бы добавил и EDIT в моем оригинальном посте. Если у вас есть представление о моей проблеме, это будет здорово. – Slot