Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 为wince编译boost_Visual Studio 2008_Boost_Windows Ce - Fatal编程技术网

Visual studio 2008 为wince编译boost

Visual studio 2008 为wince编译boost,visual-studio-2008,boost,windows-ce,Visual Studio 2008,Boost,Windows Ce,当为我的wince目标创建visual studio 2008(9.0版)项目时,visual studio了解我的platorm,即“FSS5PV210_CE6(ARMV4I)”。该平台由供应商预定义,并通过sdk安装,使visual studio神奇地知道其包含目录。在vs显示的命令行中我看不到它。 所以问题是:vs如何将include dir注入编译器 对于boost,我在user-config.jam中添加了以下内容: using msvc : 9.0~armstone : "cl.ex

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

对于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"
;
使用msvc:9.0~阿姆斯通:“cl.exe”:
-D\u CRT\u安全\u无警告
-D_WIN32_WCE=0x600
-邓德鲁塞
-DBSP_FSS5PV210
-德温斯
-暗
-D_臂_
-DARMV4I
-D_LITTLE_ENDIAN
-杜尼科德
-D_UNICODE
-DPOCKETPC2003_用户界面_模型
-数据增压\u无\u标准\u区域设置
-D_MSC_VER=1500
/子系统:windowsce,6.00
/机器:手臂
/NODEFAULTLIB:oldnames.lib
/堆栈:2621444096
coredll.lib
corelibc.lib
ole32.lib
oleaut32.lib
uuid.lib
commctrl.lib
臂
armv4
畏缩
“armasm.exe”
;
然后我给bjam打电话 bjam.exe toolset=msvc-9.0~armstone variant=debug link=static threading=multi-runtime link=shared--prefix=--layout=taged install

我再一次想知道bjam是如何知道我的平台和它的include dir的 “c:\Program Files(x86)\Windows CE Tools\wce600\FSS5PV210\u CE6\Include\Armv4i”


-Jochen

这与checksdk.exe commando一起工作:

checksdk -list

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

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

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

使用msvc:9.0~阿姆斯通:“cl.exe”:
-D\u CRT\u安全\u无警告
-D_WIN32_WCE=0x600
-邓德鲁塞
-DBSP_FSS5PV210
-德温斯
-暗
-D_臂_
-DARMV4I
-D_LITTLE_ENDIAN
-杜尼科德
-D_UNICODE
-DPOCKETPC2003_用户界面_模型
-数据增压\u无\u标准\u区域设置
-D_MSC_VER=1500
/子系统:windowsce,6.00
/机器:手臂
/NODEFAULTLIB:oldnames.lib
/堆栈:2621444096
coredll.lib
corelibc.lib
ole32.lib
oleaut32.lib
uuid.lib
commctrl.lib
臂
armv4
畏缩
“armasm.exe”
蝙蝠
;
在我称为armstoneconf.bat的批处理文件中,必须设置目标文件头的路径、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

checksdk位于哪里?
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
;