Некоторый контекст:
В моей программе используется библиотека libfl.a (библиотека flex ).
Я компилирую его под Linux:
gcc lex.yy.c -lfl
У меня установлен компилятор mingw i586-mingw32msvc-gcc
(простой материал 'hello world' компилируется без проблем)
Я использую Ubuntu (вероятно, не имеет значения)
Я хочу скомпилировать под Linux для Windows (создайте двоичный файл .exe, который будет использоваться в Windows)
Моя проблема и вопросы:
Когда я пытаюсь скомпилировать свою программу
i586-mingw32msvc-gcc lex.yy.c -lfl
Я получаю ошибки:
[...] undefined reference to '_yywrap'
[...] undefined reference to '_WinMain@16'
- Правильно ли я понимаю, что я должен скомпилировать содержимое
libfl.a
также с i586-mingw32msvc-gcc, чтобы иметь возможность использовать его в этой кросс-компиляции?
- В исходном коде есть функция
yywrap()
, но не _yywrap()
. Почему я получаю ошибку для функции с подчеркиванием _
?
- Что случилось с
_WinMain@16
? (не используется в исходном коде)
Моя цель - понять, что здесь происходит.
Если я заставлю его работать, то его бонусные баллы:)
Любая помощь приветствуется