为wince编译提升

时间:2012-08-23 09:02:53

标签: visual-studio-2008 boost windows-ce

为我的wince目标创建visual studio 2008(版本9.0)项目时,visual studio知道我的platorm是“FSS5PV210_CE6(ARMV4I)”。这个平台由供应商预先定义并通过sdk安装,并使visual studio神奇地知道它的include目录。我无法在vs显示的命令行中看到它 所以问题是:vs如何将include dir注入编译器?

for boost我将以下内容添加到user-config.jam:

using msvc : 9.0~armstone : "cl.exe" :
<compileflags>-D_CRT_SECURE_NO_WARNINGS
<compileflags>-D_WIN32_WCE=0x600
<compileflags>-DUNDER_CE
<compileflags>-DBSP_FSS5PV210
<compileflags>-DWINCE
<compileflags>-DARM
<compileflags>-D_ARM_
<compileflags>-DARMV4I
<compileflags>-D_LITTLE_ENDIAN
<compileflags>-DUNICODE
<compileflags>-D_UNICODE
<compileflags>-DPOCKETPC2003_UI_MODEL
<compileflags>-DBOOST_NO_STD_LOCALE
<compileflags>-D_MSC_VER=1500
<linkflags>/subsystem:windowsce,6.00
<linkflags>/machine:arm
<linkflags>/NODEFAULTLIB:oldnames.lib
<linkflags>/STACK:262144,4096
<linkflags>coredll.lib
<linkflags>corelibc.lib
<linkflags>ole32.lib
<linkflags>oleaut32.lib
<linkflags>uuid.lib
<linkflags>commctrl.lib
<architecture>arm
<instruction-set>armv4
<interface>wince
<assembler>"armasm.exe"
;
然后我打电话给bjam bjam.exe toolset = msvc-9.0~fobstone variant = debug link = static threading = multi runtime-link = shared --prefix = --layout = tagged install

我再次想知道bjam如何知道我的平台及其包含目录 “c:\ Program Files(x86)\ Windows CE Tools \ wce600 \ FSS5PV210_CE6 \ Include \ Armv4i”

-Jochen

2 个答案:

答案 0 :(得分:0)

这适用于checksdk.exe命令:

checksdk -list

checksdk.exe -sdk "your sdk name" -script setenviroment.bat

setenvironment.bat中,它设置了一个名为INCLUDE的环境变量。它还设置了PATHLIB。它设置PATH以确保使用正确的交叉编译器cl.exe(例如,如果您正在为arm编译,则使用x86_arm),它设置LIB以帮助您链接和INCLUDE当然是编译。

答案 1 :(得分:0)

你必须从bjam调用一个设置环境变量的批处理文件。这是通过配置文件中的选项完成的。例如:

using msvc : 9.0~armstone : "cl.exe" :
    <compileflags>-D_CRT_SECURE_NO_WARNINGS
    <compileflags>-D_WIN32_WCE=0x600
    <compileflags>-DUNDER_CE
    <compileflags>-DBSP_FSS5PV210
    <compileflags>-DWINCE
    <compileflags>-DARM
    <compileflags>-D_ARM_
    <compileflags>-DARMV4I
    <compileflags>-D_LITTLE_ENDIAN
    <compileflags>-DUNICODE
    <compileflags>-D_UNICODE
    <compileflags>-DPOCKETPC2003_UI_MODEL
    <compileflags>-DBOOST_NO_STD_LOCALE
    <compileflags>-D_MSC_VER=1500
    <linkflags>/subsystem:windowsce,6.00
    <linkflags>/machine:arm
    <linkflags>/NODEFAULTLIB:oldnames.lib
    <linkflags>/STACK:262144,4096
    <linkflags>coredll.lib
    <linkflags>corelibc.lib
    <linkflags>ole32.lib
    <linkflags>oleaut32.lib
    <linkflags>uuid.lib
    <linkflags>commctrl.lib
    <architecture>arm
    <instruction-set>armv4
    <interface>wince
    <assembler>"armasm.exe"
    <setup>armstoneconf.bat
;

在我调用armstoneconf.bat的批处理文件中,您必须设置目标标头的PATH,INCLUDE,LIB和LIBPATH。

在user-config.jam中,您必须使用ARM编译器而不是x86编译器。我认为位于%VCInstallDir%ce / bin / x86_arm / cl.exe而不是桌面目标的“cl.exe”。

您可以创建一个简单的vc解决方案,并查看Visual Studio使用的内容。

还请注意: http://stackoverflow.com/questions/15906901/build-boost-c-wince