为Windows Embedded Compact 7编译boost库

为Windows Embedded Compact 7编译boost库,boost,boost-asio,windows-embedded-compact,Boost,Boost Asio,Windows Embedded Compact,我正在为一个运行WindowsEmbeddedCompact7的NVIDiaTegra2嵌入式设备编程。我的开发环境是Microsoft Visual Studio 2008。boost库,尤其是boost asio包似乎对我的需求非常有帮助。不幸的是,我找不到一本关于如何在WindowsEmbeddedCompact7上运行boost的好指南。我更喜欢获取.lib文件,我可以将这些文件静态链接到我的应用程序中。关于这个过程的文档似乎很少,因为它需要对构建过程进行非平凡的更新才能使用Window

我正在为一个运行WindowsEmbeddedCompact7的NVIDiaTegra2嵌入式设备编程。我的开发环境是Microsoft Visual Studio 2008。boost库,尤其是boost asio包似乎对我的需求非常有帮助。不幸的是,我找不到一本关于如何在WindowsEmbeddedCompact7上运行boost的好指南。我更喜欢获取
.lib
文件,我可以将这些文件静态链接到我的应用程序中。

关于这个过程的文档似乎很少,因为它需要对构建过程进行非平凡的更新才能使用Windows CE。关于这个问题最全面的教程似乎是

由于您明确地标记了这个
boost asio
,因此我也专门研究了boost的这个组件。这将详细介绍此库,包括您可能遇到的潜在故障案例,以及*

对于那些阅读本文的人:一旦你成功了,请分享你的经验。尽管存在各种各样的问题,Boost仍然能够使用单独的包来满足您的需求。我希望其他用户对你的工作体验非常感兴趣


*由于人们一直在表达当可访问链接过期时引用的批处理文件消失的问题,下面是一个面向子孙后代的粘贴转储:

@SET VCINSTALLDIR=%VS9INSTALLDIR%\VC 
@if "%VS9INSTALLDIR%"=="" goto error_no_VSINSTALLDIR 
@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR 

@echo Setting environment for using Microsoft Visual Studio 2008 tools for WM5. 
@set TARGETCPU=X86 

@call :GetWindowsSdkDir 

@if not "%WindowsSdkDir%" == "" ( 
        set "PATH=%WindowsSdkDir%bin;%PATH%" 
) 

@rem 
@rem Root of Visual Studio IDE installed files. 
@rem 
@set DevEnvDir=%VS9INSTALLDIR%\Common7\IDE 

@set PATH=%VCINSTALLDIR%\CE\bin\x86_arm;%VCINSTALLDIR%\bin;%VS9INSTALLDIR%\Common7\Tools;%DevEnvDir%;%VS9INSTALLDIR%\Common\Tools;%VS9INSTALLDIR%\Common\IDE;%VS9INSTALLDIR%;%PATH% 
@set INCLUDE=%STLPORT_PATH%\STLPort-5.2.1\stlport;%VCINSTALLDIR%\ce\include;%CETOOLS%\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I;%CETOOLS%\Windows Mobile 5.0 Pocket PC SDK\include;%VCINSTALLDIR%\ce\atlmfc\include 
@set LIB=%STLPORT_PATH%\STLPort-5.2.1\lib\evc9-arm;%CETOOLS%\Windows Mobile 5.0 Pocket PC SDK\lib\ARMV4I;%VCINSTALLDIR%\ce\ATLMFC\LIB\ARMV4I;%VCINSTALLDIR%\ce\LIB\ARMV4I 
@set LIBPATH= 

@goto end 

:GetWindowsSdkDir 
@call :GetWindowsSdkDirHelper HKLM > nul 2>&1 
@if errorlevel 1 call :GetWindowsSdkDirHelper HKCU > nul 2>&1 
@if errorlevel 1 set WindowsSdkDir=%VCINSTALLDIR%\PlatformSDK\ 
@exit /B 0 

:GetWindowsSdkDirHelper 
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\Microsoft SDKs\Windows" /v "CurrentInstallFolder"') DO ( 
        if "%%i"=="CurrentInstallFolder" ( 
                SET "WindowsSdkDir=%%k" 
        ) 
) 
@if "%WindowsSdkDir%"=="" exit /B 1 
@exit /B 0 


:error_no_VSINSTALLDIR 
@echo ERROR: VS9INSTALLDIR variable is not set. 
@goto end 

:error_no_VCINSTALLDIR 
@echo ERROR: VCINSTALLDIR variable is not set. 
@goto end 

:end 

@SET VCINSTALLDIR=%VS9INSTALLDIR%\VC 
@SET FrameworkDir=C:\WINDOWS\Microsoft.NET\Framework 
@SET FrameworkVersion=v2.0.50727 
@SET Framework35Version=v3.5 
@if "%VS9INSTALLDIR%"=="" goto error_no_VSINSTALLDIR 
@if "%VCINSTALLDIR%"=="" goto error_no_VCINSTALLDIR 

@echo Setting environment for using Microsoft Visual Studio 2008 x86 tools with STLport-5.2.1. 

@call :GetWindowsSdkDir 

@if not "%WindowsSdkDir%" == "" ( 
        set "PATH=%WindowsSdkDir%bin;%PATH%" 
        set "INCLUDE=%WindowsSdkDir%include;%INCLUDE%" 
        set "LIB=%WindowsSdkDir%lib;%LIB%" 
) 


@rem 
@rem Root of Visual Studio IDE installed files. 
@rem 
@set DevEnvDir=%VS9INSTALLDIR%\Common7\IDE 

@set PATH=%DevEnvDir%;%VCINSTALLDIR%\BIN;%VS9INSTALLDIR%\Common7\Tools;%FrameworkDir%\%Framework35Version%;%FrameworkDir%\%FrameworkVersion%;%VCINSTALLDIR%\VCPackages;%PATH% 
@set INCLUDE=%STLPORT_PATH%\STLport-5.2.1\stlport;%VCINSTALLDIR%\ATLMFC\INCLUDE;%VCINSTALLDIR%\INCLUDE;%INCLUDE% 
@set LIB=%STLPORT_PATH%\STLport-5.2.1\lib\vc9;%VCINSTALLDIR%\ATLMFC\LIB;%VCINSTALLDIR%\LIB;%LIB% 
@set LIBPATH=%FrameworkDir%\%Framework35Version%;%FrameworkDir%\%FrameworkVersion%;%VCINSTALLDIR%\ATLMFC\LIB;%VCINSTALLDIR%\LIB;%LIBPATH% 

@goto end 

:GetWindowsSdkDir 
@call :GetWindowsSdkDirHelper HKLM > nul 2>&1 
@if errorlevel 1 call :GetWindowsSdkDirHelper HKCU > nul 2>&1 
@if errorlevel 1 set WindowsSdkDir=%VCINSTALLDIR%\PlatformSDK\ 
@exit /B 0 

:GetWindowsSdkDirHelper 
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\Microsoft SDKs\Windows" /v "CurrentInstallFolder"') DO ( 
        if "%%i"=="CurrentInstallFolder" ( 
                SET "WindowsSdkDir=%%k" 
        ) 
) 
@if "%WindowsSdkDir%"=="" exit /B 1 
@exit /B 0 

:error_no_VSINSTALLDIR 
@echo ERROR: VSINSTALLDIR variable is not set. 
@goto end 

:error_no_VCINSTALLDIR 
@echo ERROR: VCINSTALLDIR variable is not set. 
@goto end 

:end