读书人

incredibuild联机编译的有关问题

发布时间: 2012-05-04 12:36:09 作者: rapoo

incredibuild联机编译的问题
各位高人,我现在手头有个BREW平台的工程,每次编译都要花四个小时左右,时间长得真是受不了,因此我想用联机编译软件incredibuild来帮我解决这个问题。我的步骤是这样的:
1:安装incredibuild3_31.exe
2:将ResetIBDay(CMD).exe拷贝到C:\WINDOWS目录下
3:运行resetidb.reg(这个是将incredibuild的相关信息添加到注册表)
4:将XGConsole.xml拷到make文件所在文件夹下,咱们的工程对应的是\build\ms这个目录
5:修改makefile文件

其中XGConsole.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Profile FormatVersion="1">
<Tools>
<Tool Filename="perl" AllowRemote="true" />
<Tool Filename="make" AllowIntercept="true" />
<Tool Filename="tcc" AllowRemote="true" />
<Tool Filename="tcpp" AllowRemote="true" />
<Tool Filename="armasm" AllowRemote="true" />
<Tool Filename="armcc" AllowRemote="true" />
<Tool Filename="armcpp" AllowRemote="true" />
<Tool Filename="strcmpex" AllowRemote="true" />
<Tool Filename="warp" AllowRemote="true" />
<Tool Filename="armar" AllowRemote="false" />
<Tool Filename="fromelf" AllowRemote="false" />
</Tools>
</Profile>

makefile文件中原始代码如下:
make -r -f dmss6280.mak %~1 %~2 %~3 %~4 %~5 %~6 %~7 %~8 %~9 USES_FASTCOMPILE=no USES_MMI=yes USES_DISPLAY=yes USES_HSU_FAST_CHARGE=yes USES_CMX=yes USES_SEC_TIME=yes USES_IUSRSYSCLOCK=yes USES_SAF=yes USES_SDCC=yes USES_SYSMODELBASE=yes USES_RAPTOR_UMTS_VPA=yes USES_CAMERA=yes USES_SEC=yes USES_SECBOOT_2_0=yes USES_LIBSTD=yes USES_BT_QSOC=yes USES_WCDMA=yes USES_PBMTASK=yes USES_JPEG=yes USES_SNDCTL=yes USES_OVERLAY2=yes USES_IIPL=yes USES_BT_SOC=yes USES_AUDIOEQ=yes USES_QVP=yes USES_HS_USB_CHG_REMOTE_API=yes USES_HS_USB_ON_MODEM_PROC=yes USES_AUDFMT_AMRWB=yes USES_PROGRESSIVE_BOOT=yes USES_BT=yes USES_AUTH=yes USES_HSU_MS_FD=yes USES_IRATS=yes USES_SURF=yes USES_STA_ROHC=yes USES_MP4=yes USES_HSU_ECM=yes USES_IVECTOR=yes USES_PDDBNSBA=yes USES_QALBUM=yes USES_EFS2=yes USES_NANDPRG_HDR=yes USES_BREW_USB_HID=yes USES_EXT_MISC=yes USES_HFAT=yes USES_ROMBOOT=yes USES_CHARGER=yes USES_ERR_EXCLUDE_RESET_DETECT=yes USES_HSU=yes USES_HSU_OTG=yes USES_QFIT_SLC_2048_64_1024_16=yes USES_CGPS=no USES_CAMCORDER=yes USES_MMOVERLAY=yes USES_SFS=yes USES_PICT_BRIDGE=yes USES_IALERT=yes USES_DRM20=yes USES_SVGDOM=yes USES_AUDFMT_AMR=yes USES_SUPPORT_UMTS_GPS_PROTOCOLS=no USES_SEC_SVC=yes USES_QAUDIOFX=yes USES_DEMAND_LOADING=yes USES_OEMSBL_SBI_PMIC_LIB=yes USES_DRM_COM=yes USES_QFIT_EXEC_QFIT_EXE=yes USES_HAL=yes USES_IMS=yes USES_GSM=yes USES_L4=yes USES_SVG=yes USES_BOOT_SPLASH_SCREEN=yes USES_AUDIOFTM=yes USES_STATIC_RAPTOR=no USES_QVPLIVE=yes USES_USRSYSCLOCK=yes USES_QVPCODEC=yes USES_IBT=yes USES_STRIP_NO_ODM=yes USES_EXT_QCAMCORDER=yes USES_SEC_CLNT=yes USES_H264=yes USES_SPLIT_CODE_DATA=yes USES_IBATT=yes USES_ICONTENTHANDLER=yes USES_WM=yes USES_STA_PSSTATS=yes USES_BCASTFLO=yes USES_NAND_SDRAM=yes USES_HSU_UICC=yes USES_ERR_SERVICES=yes USES_IDIAG=yes USES_FEATURE_CGPS_XTRA=no USES_FEATURE_CGPS_OSS_ADS120_7X=no USES_ZRF6300=yes USES_STA_PS_IFACE=yes USES_GSTK=yes USES_GWZRF6250=yes USES_QBT=yes USES_ISUPPSVC=yes USES_IANNUNCIATOR=yes USES_RAPTOR_UMTS_DDA=yes USES_BREW_APPMGR=no ASIC=M6260 BUILD=%PROJECTNAME% VERSION=1536 BUILDDIR=%PROJECTNAME% USE_NO_DEBUG=no 2>&1 | ..\..\tools\build\qtee buildW001.log

我装完incredibuild后修改makefile如下:
XGConsole /command="make -j20 -r -f dmss6280.mak %~1 %~2 %~3 %~4 %~5 %~6 %~7 %~8 %~9 USES_FASTCOMPILE=no USES_MMI=yes USES_DISPLAY=yes USES_HSU_FAST_CHARGE=yes USES_CMX=yes USES_SEC_TIME=yes USES_IUSRSYSCLOCK=yes USES_SAF=yes USES_SDCC=yes USES_SYSMODELBASE=yes USES_RAPTOR_UMTS_VPA=yes USES_CAMERA=yes USES_SEC=yes USES_SECBOOT_2_0=yes USES_LIBSTD=yes USES_BT_QSOC=yes USES_WCDMA=yes USES_PBMTASK=yes USES_JPEG=yes USES_SNDCTL=yes USES_OVERLAY2=yes USES_IIPL=yes USES_BT_SOC=yes USES_AUDIOEQ=yes USES_QVP=yes USES_HS_USB_CHG_REMOTE_API=yes USES_HS_USB_ON_MODEM_PROC=yes USES_AUDFMT_AMRWB=yes USES_PROGRESSIVE_BOOT=yes USES_BT=yes USES_AUTH=yes USES_HSU_MS_FD=yes USES_IRATS=yes USES_SURF=yes USES_STA_ROHC=yes USES_MP4=yes USES_HSU_ECM=yes USES_IVECTOR=yes USES_PDDBNSBA=yes USES_QALBUM=yes USES_EFS2=yes USES_NANDPRG_HDR=yes USES_BREW_USB_HID=yes USES_EXT_MISC=yes USES_HFAT=yes USES_ROMBOOT=yes USES_CHARGER=yes USES_ERR_EXCLUDE_RESET_DETECT=yes USES_HSU=yes USES_HSU_OTG=yes USES_QFIT_SLC_2048_64_2048_8=yes USES_CGPS=no USES_CAMCORDER=yes USES_MMOVERLAY=yes USES_SFS=yes USES_PICT_BRIDGE=yes USES_IALERT=yes USES_DRM20=yes USES_SVGDOM=yes USES_AUDFMT_AMR=yes USES_SUPPORT_UMTS_GPS_PROTOCOLS=no USES_SEC_SVC=yes USES_QAUDIOFX=yes USES_DEMAND_LOADING=yes USES_OEMSBL_SBI_PMIC_LIB=yes USES_DRM_COM=yes USES_QFIT_EXEC_QFIT_EXE=yes USES_HAL=yes USES_IMS=yes USES_GSM=yes USES_L4=yes USES_SVG=yes USES_BOOT_SPLASH_SCREEN=yes USES_STATIC_RAPTOR=no USES_QVPLIVE=yes USES_USRSYSCLOCK=yes USES_QVPCODEC=yes USES_IBT=yes USES_STRIP_NO_ODM=yes USES_EXT_QCAMCORDER=yes USES_SEC_CLNT=yes USES_H264=yes USES_SPLIT_CODE_DATA=yes USES_IBATT=yes USES_ICONTENTHANDLER=yes USES_WM=yes USES_STA_PSSTATS=yes USES_BCASTFLO=yes USES_NAND_SDRAM=yes USES_HSU_UICC=yes USES_ERR_SERVICES=yes USES_IDIAG=yes USES_FEATURE_CGPS_XTRA=no USES_FEATURE_CGPS_OSS_ADS120_7X=no USES_ZRF6300=yes USES_STA_PS_IFACE=yes USES_GSTK=yes USES_GWZRF6250=yes USES_QBT=yes USES_ISUPPSVC=yes USES_IANNUNCIATOR=yes USES_RAPTOR_UMTS_DDA=yes USES_BREW_APPMGR=no ASIC=M6260 BUILD=%PROJECTNAME% VERSION=1525 BUILDDIR=%PROJECTNAME% USE_NO_DEBUG=no 2>&1 | ..\..\tools\build\qtee build%PROJECTNAME%.log" /NOLOGO /profile="XGConsole.xml"



也就是在前面加上了(XGConsole /command="),在最后加上了 (" /NOLOGO /profile="XGConsole.xml"),再在make后加了个“-j20”,表示最多可以用20个空闲的CPU参与分布式编译。

上面的步骤完成后,我开始编译,这时incredibuild正常工作,编译起来速度飞快的。半小时就编译完了,但是在链接阶段,总是出错,提示一些变量找不到。我进去查看发现,很多汇编文件都没有被编译。 这时我去掉联机编译,就在本地编译,仍然链接时出错。

本人十分不解为什么会出现上面的状况,难道使用这个incredibuild时,还有什么其他的地方要设置么?

盼望指教!

[解决办法]
我也想搭建一个incredibuild这样的分布式编译。请问你的现在可用了吗?
可否共享一下经验?非常感谢!
[解决办法]
同上想知道
[解决办法]
是不是有顺序依赖
可以clean一下重编
[解决办法]
或者单独对没有编译的文件incredibuild编译

记住不要inredibuild和 F5混合编译,有时会出现莫名其妙的问题

读书人网 >C++

热点推荐