Я работаю над проектом C ++ под Windows10_x86_64. Я использую библиотеки Poco C ++, установленные с помощью Msys2 для компилятора MinGW64. Все зависимости моего проекта были успешно установлены с помощью Msys2.
Однако, когда я пытаюсь скомпилировать свой проект, я получил следующую ошибку:
In file included from /mingw64/include/Poco/Thread_POSIX.h:23,
from /mingw64/include/Poco/Thread.h:35,
from /mingw64/include/Poco/ThreadPool.h:22,
from /mingw64/include/Poco/ActiveStarter.h:22,
from /mingw64/include/Poco/ActiveMethod.h:24,
from /mingw64/include/Poco/AbstractEvent.h:25,
from /mingw64/include/Poco/BasicEvent.h:21,
from /mingw64/include/Poco/Util/AbstractConfiguration.h:25,
from /mingw64/include/Poco/Util/LoggingConfigurator.h:24,
from ../../prompt/common/PLogger.h:41,
from PLogger.cpp:15:
/mingw64/include/Poco/SignalHandler.h:80:2: error: 'sigjmp_buf' does not name a type; did you mean 'jmp_buf'?
80 | sigjmp_buf& jumpBuffer();
| ^~~~~~~~~~
| jmp_buf
/mingw64/include/Poco/SignalHandler.h:99:3: error: 'sigjmp_buf' does not name a type; did you mean 'jmp_buf'?
99 | sigjmp_buf buf;
| ^~~~~~~~~~
| jmp_buf
После просмотра SignalHandler.h я увидел, что это файл включает в себя:
#include <setjmp.h>
И этот файл включает в себя:
#include <machine/setjmp.h>
, которые определяют sigjmp_buf:
/* POSIX sigsetjmp/siglongjmp macros */
#ifdef _JBTYPE
typedef _JBTYPE sigjmp_buf[_JBLEN+1+((sizeof (_JBTYPE) + sizeof (sigset_t) - 1)
/sizeof (_JBTYPE))];
#else
typedef int sigjmp_buf[_JBLEN+1+(sizeof (sigset_t)/sizeof (int))];
#endif
Я включаю:
-I c: / msys64 / usr / include для setjmp.h и machine / setjmp.h и
-I c: / msys64 / mingw64 / include для заголовков Poco
в мой Makefile, но ошибки не исчезают.
Я не понимаю, где ошибка. Заранее спасибо.