Ошибка компилятора в mingw-w64: «неопределенная ссылка на __getreent».

В настоящее время я занимаюсь (кошмарной) задачей, пытаясь скомпилировать cImg и libjpeg в Windows. Спустя много часов мне наконец удалось собрать libjpeg, и я включил его в процесс сборки (cImg нуждается в libjpeg для работы с jpeg).

Когда я пытаюсь скомпилировать с помощью «g++ image.cpp libjpeg.a -lgdi32», я получаю следующую ошибку:

'jerror.c:112: undefined reference to `__getreent. The system cannot find the path specified.'

Я посмотрел в Google, но, похоже, не так много людей с такой же проблемой (и еще меньше с ответами).

Я компилирую в Windows, используя mingw-w64.


person user1311627    schedule 04.01.2018    source источник


Ответы (1)


Я решил это. Для тех, у кого такая же проблема:

  • Убедитесь, что вы компилируете libjpeg.a и cImg одним и тем же компилятором (например, gcc или mingw-w64)

  • Из-за трудностей компиляции libjpeg с помощью mingw-w64 я использовал компилятор gcc, но если вы используете эту библиотеку, вам также необходимо скомпилировать cImg с помощью gcc (что вызывает другие проблемы...)

  • В конце концов мне удалось скомпилировать libjpeg с mingw-w64 в MSYS2, изменив путь. Для этого вам нужно унаследовать путь Windows — отредактируйте «msys2_shell.cmd» и удалите 'rem' из 'set MSYS2_PATH_TYPE=inherit'.

person user1311627    schedule 05.01.2018