2015-02-12 2 views
1

я скачал poco-1.6-all для windows и im, пытаясь построить его для cygwin, im получая эту ошибку после выполнения make install, мне нужна помощь, потому что я не знаю, как решить эту проблему NTDDI_VERSION ошибка:Ошибка компиляции источников Poco для cygwin

$ make install 
make -C /cygdrive/c/poco-1.6.0-all/Foundation 
make[1]: Entering directory '/cygdrive/c/poco-1.6.0-all/Foundation' 
mkdir -p /cygdrive/c/poco-1.6.0-all/Foundation/obj/CYGWIN/x86_64/release_static 
mkdir -p /cygdrive/c/poco-1.6.0-all/Foundation/obj/CYGWIN/x86_64/debug_static 
mkdir -p /cygdrive/c/poco-1.6.0-all/Foundation/obj/CYGWIN/x86_64/release_shared 
mkdir -p /cygdrive/c/poco-1.6.0-all/Foundation/obj/CYGWIN/x86_64/debug_shared 
** Compiling src/ArchiveStrategy.cpp (debug, shared) 
g++ -Iinclude -I/cygdrive/c/poco-1.6.0-all/CppUnit/include -I/cygdrive/c/poco-1.6.0-all/CppUnit/WinTestRunner/include -I/cygdrive/c/poco-1.6.0-all/Foundation/include -I/cygdrive/c/poco-1.6.0-all/XML/include -I/cygdrive/c/poco-1.6.0-all/JSON/include -I/cygdrive/c/poco-1.6.0-all/Util/include -I/cygdrive/c/poco-1.6.0-all/Net/include -I/cygdrive/c/poco-1.6.0-all/Crypto/include -I/cygdrive/c/poco-1.6.0-all/NetSSL_OpenSSL/include -I/cygdrive/c/poco-1.6.0-all/Data/include -I/cygdrive/c/poco-1.6.0-all/Data/SQLite/include -I/cygdrive/c/poco-1.6.0-all/Data/ODBC/include -I/cygdrive/c/poco-1.6.0-all/Data/MySQL/include -I/cygdrive/c/poco-1.6.0-all/MongoDB/include -I/cygdrive/c/poco-1.6.0-all/Zip/include -I/cygdrive/c/poco-1.6.0-all/PageCompiler/include -I/cygdrive/c/poco-1.6.0-all/PageCompiler/File2Page/include -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING -DPOCO_NO_SHAREDMEMORY -DPOCO_BUILD_HOST=PB00YCT7 -D_XOPEN_SOURCE=500 -g -D_DEBUG -c src/ArchiveStrategy.cpp -o /cygdrive/c/poco-1.6.0-all/Foundation/obj/CYGWIN/x86_64/debug_shared/ArchiveStrategy.o 
In file included from c:\mingw\include\_mingw.h:35:0, 
       from c:\mingw\include\windows.h:28, 
       from include/Poco/UnWindows.h:90, 
       from include/Poco/Platform_WIN32.h:24, 
       from include/Poco/Foundation.h:102, 
       from include/Poco/ArchiveStrategy.h:23, 
       from src/ArchiveStrategy.cpp:17: 
c:\mingw\include\sdkddkver.h:137:8: error: #error The _WIN32_WINNT value does not match NTDDI_VERSION 
#  error The _WIN32_WINNT value does not match NTDDI_VERSION 
     ^
In file included from include/Poco/ArchiveStrategy.h:23:0, 
       from src/ArchiveStrategy.cpp:17: 
include/Poco/Foundation.h:122:4: error: #error POCO_WIN32_UTF8 and POCO_NO_WSTRING are mutually exclusive. 
    #error POCO_WIN32_UTF8 and POCO_NO_WSTRING are mutually exclusive. 
    ^
/cygdrive/c/poco-1.6.0-all/build/rules/compile:53: recipe for target '/cygdrive/c/poco-1.6.0-all/Foundation/obj/CYGWIN/x86_64/debug_shared/ArchiveStrategy.o' failed 
make[1]: *** [/cygdrive/c/poco-1.6.0-all/Foundation/obj/CYGWIN/x86_64/debug_shared/ArchiveStrategy.o] Error 1 
make[1]: Leaving directory '/cygdrive/c/poco-1.6.0-all/Foundation' 
Makefile:69: recipe for target 'Foundation-libexec' failed 
make: *** [Foundation-libexec] Error 2 

Здесь также линии я использую для компиляции де код:

$ ./configure --config=CYGWIN --omit=NetSSL_OpenSSL,Crypto,Data/ODBC,Data/MySQ --prefix=./_INSTALL 
$ make clean 
$ make -j4 -nodemos 
$ make install 

Любая помощь с этой ошибкой будет apreciated, спасибо.

ответ

2

Это связано с тем, что MinGW имеет c:\mingw\include\sdkddkver.h устаревший по сравнению с вашей версией ОС Windows. Посмотрите на эту страницу:

Using the Windows Headers

И проверить, что некоторые #define «s не в указанный файл. Я просто использовал Windows 8.1 и получил ту же ошибку.

Решение может использовать обновленную версию с MinGW как MinGW-w64 или любой Visual Studio version

+0

Это помогло мне с решением ошибки NTDDI и я также удалось решить ошибку POCO_WIN32_UTF8, но теперь им застрял в этом: рецепт для цели '/cygdrive/c/poco-1.6.0-all/Foundation/obj/CYGWIN/x86_64/debug_shared/ArchiveStrategy.o' –

Смежные вопросы