我正在尝试在Windows7专业版x64上从Visual Studio2008命令提示符(VS9.0Professional SP1 with Windows Embedded Compact 7ATL Update)使用提供的buildwin.cmd构建POCO 1.6.1 C++库,如下所示:
buildwin 90 build static_mt both WinCE samples但是,由于C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h中的几个错误,基础库(Foundation_CE_vs90.vcproj)的构建失败,以下文件显然需要这些错误:
wce_winbase.c
wce_path.c
wce_directorymanagement.c
wce_clock.c文件wce_rewind.c本身似乎也有一些buggy。
可能发生了一些微不足道的事情,但我就是找不到。下面是输出的一些相关部分(目标Beckhoff_HMI_700 (x86)是我感兴趣的Windows needed Compact7设备,它的SDK似乎在我的机器上配置正确-如果需要,我可以提供更多细节)。非常感谢大家。
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
########################################################################
####
#### STARTING VISUAL STUDIO BUILD (vs90, WinCE)
####
########################################################################
The following configurations will be built:
debug_static_mt
release_static_mt
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++ Building [CppUnit_CE_vs90.vcproj]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Microsoft (R) Visual Studio Version 9.0.30729.1.
Copyright (C) Microsoft Corp. All rights reserved.
1>------ Build started: Project: CppUnit, Configuration: debug_static_mt Beckhoff_HMI_700 (x86) ------
1>Compiling...
1>TextTestResult.cpp
1>TestSuite.cpp
1>TestRunner.cpp
1>TestResult.cpp
1>TestFailure.cpp
1>TestDecorator.cpp
1>TestCase.cpp
1>Generating Code...
1>Compiling...
1>CppUnitException.cpp
1>Creating library...
1>Build log was saved at "file://c:\poco-1.6.1\CppUnit\obj\Beckhoff_HMI_700 (x86)\debug_static_mt\BuildLog.htm"
1>CppUnit - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Microsoft (R) Visual Studio Version 9.0.30729.1.
Copyright (C) Microsoft Corp. All rights reserved.
1>------ Build started: Project: CppUnit, Configuration: release_static_mt Beckhoff_HMI_700 (x86) ------
1>Compiling...
1>TextTestResult.cpp
1>TestSuite.cpp
1>TestRunner.cpp
1>TestResult.cpp
1>TestFailure.cpp
1>TestDecorator.cpp
1>TestCase.cpp
1>Generating Code...
1>Compiling...
1>CppUnitException.cpp
1>Creating library...
1>Build log was saved at "file://c:\poco-1.6.1\CppUnit\obj\Beckhoff_HMI_700 (x86)\release_static_mt\BuildLog.htm"
1>CppUnit - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
------------------------------------------------------------------------
------------------------------------------------------------------------
---- Done building [CppUnit_CE_vs90.vcproj]
------------------------------------------------------------------------
------------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++ Building [Foundation_CE_vs90.vcproj]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Microsoft (R) Visual Studio Version 9.0.30729.1.
Copyright (C) Microsoft Corp. All rights reserved.
1>------ Build started: Project: Foundation, Configuration: debug_static_mt Beckhoff_HMI_700 (x86) ------
1>Compiling...
1>Base32Decoder.cpp
1>VarIterator.cpp
1>VarHolder.cpp
1>Var.cpp
1>Void.cpp
1>StringTokenizer.cpp
1>DirectoryIteratorStrategy.cpp
1>NumericString.cpp
1>String.cpp
1>SortedDirectoryIterator.cpp
1>RefCountedObject.cpp
1>NumberParser.cpp
1>NumberFormatter.cpp
1>NestedDiagnosticContext.cpp
1>MemoryPool.cpp
1>FPEnvironment.cpp
1>Format.cpp
1>Exception.cpp
1>Error.cpp
1>Environment.cpp
1>Generating Code...
1>Compiling...
1>Debugger.cpp
1>Checksum.cpp
1>ByteOrder.cpp
1>Bugcheck.cpp
1>AtomicCounter.cpp
1>Generating Code...
1>Compiling...
1>wce_winbase.c
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(238) : error C2016: C requires that a struct or union has at least one member
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(238) : error C2061: syntax error : identifier 'ULONG_PTR'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(239) : error C2061: syntax error : identifier 'InternalHigh'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(239) : error C2059: syntax error : ';'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(242) : error C2016: C requires that a struct or union has at least one member
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(242) : error C2061: syntax error : identifier 'DWORD'
[...]
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(418) : error C2061: syntax error : identifier 'VOID'
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(418) : fatal error C1003: error count exceeds 100; stopping compilation
1>wce_unlink.c
1>wce_timesys.c
1>wce_time.c
1>wce_strerror.c
1>wce_stat.c
1>wce_setlocale.c
1>wce_rmdir.c
1>wce_rewind.c
1>.\wcelibcex-1.0\src\wce_rewind.c(64) : error C2143: syntax error : missing ')' before '*'
1>.\wcelibcex-1.0\src\wce_rewind.c(64) : error C2143: syntax error : missing '{' before '*'
1>.\wcelibcex-1.0\src\wce_rewind.c(64) : error C2059: syntax error : ')'
1>.\wcelibcex-1.0\src\wce_rewind.c(65) : error C2054: expected '(' to follow 'fp'
1>wce_rename.c
1>wce_path.c
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(238) : error C2016: C requires that a struct or union has at least one member
[...]
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(436) : fatal error C1003: error count exceeds 100; stopping compilation
1>wce_mktime.c
1>wce_mkdir.c
1>wce_localtime.c
1>wce_lfind.c
1>wce_gettimeofday.c
1>wce_getopt.c
1>wce_getenv.c
1>wce_findfile.c
1>wce_errno.c
1>Generating Code...
1>Compiling...
1>wce_directorymanagement.c
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(238) : error C2016: C requires that a struct or union has at least one member
[...]
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(418) : fatal error C1003: error count exceeds 100; stopping compilation
1>wce_ctime.c
1>wce_clock.c
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(238) : error C2016: C requires that a struct or union has at least one member
[...]
1>C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winbase.h(418) : fatal error C1003: error count exceeds 100; stopping compilation
1>wce_bsearch.c
1>wce_asctime.c
1>.\wcelibcex-1.0\src\wce_asctime.c(124) : warning C4013: 'sprintf' undefined; assuming extern returning int
1>wce_access.c
1>.\wcelibcex-1.0\src\wce_access.c(67) : error C2065: 'SFGAO_READONLY' : undeclared identifier
1>wce_abort.c
1>Generating Code...
1>Compiling...
1>HashStatistic.cpp
1>Hash.cpp
1>EventArgs.cpp
1>TaskNotification.cpp
1>TaskManager.cpp
[...]
1>pcre_exec.c
1>pcre_compile.c
1>Generating Code...
1>Compiling...
1>pcre_chartables.c
1>Generating Code...
1>Compiling...
1>RegularExpression.cpp
1>SharedLibrary.cpp
1>c:\poco-1.6.1\foundation\src\SharedLibrary_WIN32U.cpp(86) : error C3861: 'GetProcAddressW': identifier not found
1>Manifest.cpp
1>SHA1Engine.cpp
1>RandomStream.cpp
[...]
1>Generating Code...
1>Compiling...
1>zutil.c
1>C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(720) : error C2059: syntax error : '('
1>.\src\zutil.c(147) : error C2072: '_errno' : initialization of a function
1>trees.c
1>inftrees.c
1>inflate.c
1>inffast.c
[...]
1>Base64Decoder.cpp
1>Base32Encoder.cpp
1>Generating Code...
1>Build log was saved at "file://c:\poco-1.6.1\Foundation\obj\Foundation\Beckhoff_HMI_700 (x86)\debug_static_mt\BuildLog.htm"
1>Foundation - 416 error(s), 1 warning(s)
2>------ Build started: Project: TestSuite, Configuration: debug_static_mt Beckhoff_HMI_700 (x86) ------
3>------ Build started: Project: TestApp, Configuration: debug_static_mt Beckhoff_HMI_700 (x86) ------
4>------ Build started: Project: TestLibrary, Configuration: debug_static_mt Beckhoff_HMI_700 (x86) ------
3>Compiling...
4>Compiling...
3>TestApp_WINCE.cpp
4>TestLibrary.cpp
2>Compiling...
2>AnyTest.cpp
2>VarTest.cpp
4>TestPlugin.cpp
4>Generating Code...
3>Linking...
4>Linking...
3>LINK : fatal error LNK1181: cannot open input file 'PocoFoundationmtd.lib'
4>LINK : fatal error LNK1181: cannot open input file 'PocoFoundationmtd.lib'
3>Build log was saved at "file://c:\poco-1.6.1\Foundation\testsuite\obj\TestApp\Beckhoff_HMI_700 (x86)\debug_static_mt\BuildLog.htm"
3>TestApp - 1 error(s), 0 warning(s)
4>Build log was saved at "file://c:\poco-1.6.1\Foundation\testsuite\obj\TestLibrary\Beckhoff_HMI_700 (x86)\debug_static_mt\BuildLog.htm"
4>TestLibrary - 1 error(s), 0 warning(s)
2>DynamicTestSuite.cpp
2>SimpleHashTableTest.cpp
2>LinearHashTableTest.cpp
2>HashTableTest.cpp
2>HashSetTest.cpp
1>inffast.c
[...]
2>ByteOrderTest.cpp
2>AutoReleasePoolTest.cpp
2>AutoPtrTest.cpp
2>ArrayTest.cpp
2>Generating Code...
2>Linking...
2>LINK : fatal error LNK1181: cannot open input file 'PocoFoundationmtd.lib'
2>Build log was saved at "file://c:\poco-1.6.1\Foundation\testsuite\obj\TestSuite\Beckhoff_HMI_700 (x86)\debug_static_mt\BuildLog.htm"
2>TestSuite - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 4 failed, 0 up-to-date, 0 skipped ==========
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXX BUILD FAILED. EXITING. XXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX发布于 2016-02-05 19:35:24
您的SDK或您正在使用的include路径有问题。CE构建永远不应该使用C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\下的任何内容;这些是桌面Windows SDK的头文件。您的构建使用的winbase.h应该来自c:\Program Files (x86)\Windows CE Tools\SDKs\[platform name]\Include\[architecture]\下的设备SDK头。
您应该检查桌面Windows SDK标头是否在您的包含路径中的某个位置,并相应地删除它们。由于CppUnit似乎构建正确,并且假设您可以使用相同的设备SDK成功构建其他软件,因此首先在Foundation_CE_vs90.vcproj中查找它们。
发布于 2016-03-09 04:29:05
一种可能是在VC++目录中存在Windows SDK 6.0A的包含路径。
Visual Studio中的
SDK目录中可能会有一些变化,因为这取决于SDK安装程序和您在安装过程中的选择。
如果您安装或使用常规的Windows SDK,则可能会发生这种情况。这就是发生在我身上的事情。
此外,库文件也可能存在问题。在上面的步骤3中,选择“库文件”并进行相应的更改。
https://stackoverflow.com/questions/35048405
复制相似问题