Проблема
Если я пытаюсь скомпилировать c-код (из FMU, экспортируемого JModelica) с emcc, я получаю сообщение об ошибке, что заголовочный файл "gnu / stubs-32.h" не найден.
emcc -I /usr/include/ -I /usr/include/x86_64-linux-gnu/ -I /usr/include/x86_64-linux-gnu/bits/ -I /home/osboxes/Programme/JModelica/include/RuntimeLibrary/ -I /home/osboxes/Programme/JModelica/ThirdParty/FMI/2.0/ BouncingBall.c
Ошибка
/usr/include/x86_64-linux-gnu/gnu/stubs.h:7:11 fatal error: 'gnu/stubs-32.h' file not found
Я уже пытался предоставить компилятору необходимые заголовочные файлы, установив libc6-dev: i386.Но это не сработает из-за компиляции 32-битного программного обеспечения на 64-битной машине. ребята из emscripten уже сказали мне, что нет работающей 32-битной версии компилятора emcc.Так что я думаю, что единственный путь - это продолжить работу с 64-битным ...
Я нашел в gnu / stubs.h файл, который отвечает за выбор неправильного заголовочного файла:
#if !defined __x86_64__
# include <gnu/stubs-32.h>
#endif
#if defined __x86_64__ && defined __LP64__
# include <gnu/stubs-64.h>
#endif
#if defined __x86_64__ && defined __ILP32__
# include <gnu/stubs-x32.h>
#endif
Поэтому я прихожу к выводу, что __LP64__
не определен, но должен быть определен, чтобы иметь возможность использовать 64-битные файлы заголовков.
Кто-нибудь имеет в виду, как я могу скомпилировать c-код с emcc?
Моя среда:
- Ubuntu 18.10 (64-разрядная версия)
- JModelica (версия r12614)
- Emscripten(emcc: 1.3820 / clang: 6.0.1 / Цель: x86_64-unknown-linux-gnu / выбранный gcc: / usr / lib / gcc / x86_64-linux-gnu / 8)