为我的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
答案 0 :(得分:0)
这适用于checksdk.exe命令:
checksdk -list
checksdk.exe -sdk "your sdk name" -script setenviroment.bat
在setenvironment.bat
中,它设置了一个名为INCLUDE
的环境变量。它还设置了PATH
和LIB
。它设置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