0

在为我的 wince 目标创建 Visual Studio 2008(版本 9.0)项目时,Visual Studio 知道我的平台是“FSS5PV210_CE6(ARMV4I)”。该平台由供应商预定义并通过 sdk 安装,并让 Visual Studio 神奇地知道其包含目录。我在 vs 显示的命令行中看不到它,所以问题是:vs 如何将包含目录注入编译器?

为了提升,我在 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.exe 工具集=msvc-9.0~armstone variant=debug link=static threading=multi runtime-link=shared --prefix= --layout=tagged install 调用 bjam

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

-约臣

4

2 回答 2

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

于 2013-04-11T02:42:59.133 回答
0

这适用于 checksdk.exe 突击队:

checksdk -list

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

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

于 2012-09-19T06:48:54.037 回答