Ошибка, включающая jpeglib.h: ожидаемый идентификатор перед маркером '*'

Я пытаюсь собрать bundler_sfm на моем компьютере с Fedora 25, но получаю следующие ошибки при компиляции LoadJPEG.cpp файл:

In file included from /usr/local/include/jpeglib.h:27:0,
                 from LoadJPEG.cpp:23:
/usr/local/include/jpeglib.h:704:3: error: expected identifier before ‘*’ token
   JMETHOD(noreturn_t, error_exit, (j_common_ptr cinfo));
   ^
/usr/local/include/jpeglib.h:704:3: error: ‘noreturn_t’ declared as function returning a function
   JMETHOD(noreturn_t, error_exit, (j_common_ptr cinfo));
   ^

Кажется, что мой компилятор как-то не любит jpeglib.h заголовочный файл, но я не могу понять, почему. Вот команда в make-файле, которая генерирует ошибку:

g++ -c -o LoadJPEG.o -O3 -Wall -Wno-unused-result -std=gnu++0x \
-I../lib/imagelib -I../lib/sfm-driver -I../lib/matrix -I../lib/5point \
-I../lib/sba-1.5 -I../lib/ann_1.1_char/include -I../include  \
-D__NO_UI__ -D__BUNDLER__ -D__BUNDLER_DISTR__ LoadJPEG.cpp

А вот расположение в jpeglib.h обсуждаемый:

700 /* Error handler object */
701 
702 struct jpeg_error_mgr {
703   /* Error exit handler: does not return to caller */
704   JMETHOD(noreturn_t, error_exit, (j_common_ptr cinfo));
705   /* Conditionally emit a trace or warning message */
706   JMETHOD(void, emit_message, (j_common_ptr cinfo, int msg_level));
707   /* Routine that actually outputs a trace or error message */
708   JMETHOD(void, output_message, (j_common_ptr cinfo));

Я не знаю, имеет ли это значение, но jpeglib.h файл вложен в extern "C" { блок.

Я открыл проблему GitHub в репозитории bundler_sfm, но, похоже, моя проблема, вероятно, не относится к этому проекту. Если кто-нибудь может сказать, что здесь происходит, я был бы очень благодарен.

0 ответов

Другие вопросы по тегам