Ошибка, включающая 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, но, похоже, моя проблема, вероятно, не относится к этому проекту. Если кто-нибудь может сказать, что здесь происходит, я был бы очень благодарен.