компиляция Poco-1.5.1 с MinGW

Я пытаюсь скомпилировать Poco-1.5.1 с помощью MinGW (gcc 4.7.0) под Windows 7.

У него есть проблемы с std::copysign в Foundation\include\Poco\FPEnvironment_DUMMY.h, но легко решить, комментируя "std::" в методах copySignImpl.

Моя следующая проблема связана с файлом «Foundation\src\EventLogChannel.cpp», который пытается включить «pocomsg.h», которого не существует.

Я читал, что pocomsg.h генерируется из скрипта pocomsg.mc. MC — это компилятор сообщений от Microsoft, которого нет в моей системе MinGW. Так должен ли я вручную включать pocomsg.h, как говорится в этом посте?

poco Lib не компилируется в vs Express 9

Есть ли лучший способ решить эту проблему?

Спасибо.


person Cesar Ortiz    schedule 01.04.2013    source источник


Ответы (1)


pocomsg.h должен быть найден в ../Foundation/src/

Согласно этому post, Пара определений:

#define POCO_CTG_FATAL                   0x00000001L
#define POCO_CTG_CRITICAL                0x00000002L
#define POCO_CTG_ERROR                   0x00000003L
#define POCO_CTG_WARNING                 0x00000004L
#define POCO_CTG_NOTICE                  0x00000005L
#define POCO_CTG_INFORMATION             0x00000006L
#define POCO_CTG_DEBUG                   0x00000007L
#define POCO_CTG_TRACE                   0x00000008L
#define POCO_MSG_LOG                     0x00001000L

Это кишки файла. Попробуйте определить их самостоятельно в Poco.h, возможно.

person David Karlsson    schedule 30.07.2013
comment
Спасибо, все работает, но теперь у меня новые проблемы с DNS.cpp, который не может найти getaddrinfo, freeaddrinfo и другие. Любая подсказка? - person Cesar Ortiz; 31.07.2013
comment
Хорошо, я заменил -DWINVER=0x500 на -DWINVER=0x501 в файле build\config\MinGW, и теперь getaddrinfo (и другие) работает... но теперь в NetworkInterface.cpp пишет, что "Error" и "rc" не объявлено. Больше подсказок? (еще раз спасибо) - person Cesar Ortiz; 01.08.2013
comment
Возможно, вам следует нажать «решено» на этот вопрос и опубликовать новый, я посмотрю на это! - person David Karlsson; 02.08.2013
comment
вы имеете в виду: ERROR_BUFFER_OVERFLOW, ERROR_SUCCESS, NO_ERROR? Это могут быть стандартные вещи, возможно, вы можете использовать: winerror.h Подробнее здесь. (Я понял это, просмотрев файл cpp - person David Karlsson; 02.08.2013