solomonlxd
小狐狸
小狐狸
  • UID24904
  • 注册日期2008-06-20
  • 最后登录2008-06-20
  • 发帖数1
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:3758回复:0

新手在Winxp使用MozillaBuildSetup-1.3+VS2005编译Minimo的惨剧

楼主#
更多 发布于:2008-06-20 13:56
系统Winxp,安装了MozillaBuildSetup-1.3到C:\mozilla-build,以及VS2005,但是因为C盘空间不够,于是将VS2005装到了d盘,安装的2005自带sp1,SDK是PSDK2003R2。

按照http://www.mozilla.org/projects/minimo/WinCE/build.html的说明,顺利通过 Inital Pull  和 mozconfig 两个步骤后,到了第3步的 make -f client.mk pull_all build_all 出现错误,分开执行,make -f client.mk pull_all正常下载了N多代码,然后执行make -f client.mk build_all,结果在执行
cl /D_CRT_SECURE_NO_DEPRECATE vs8ppc2003arm/arm-wince-as.c
cl /D_CRT_SECURE_NO_DEPRECATE vs8ppc2003arm/arm-wince-gcc.c
cl /D_CRT_SECURE_NO_DEPRECATE vs8ppc2003arm/arm-wince-lib.c
cl /D_CRT_SECURE_NO_DEPRECATE vs8ppc2003arm/arm-wince-link.c

的时候出现问题,编译器将/D_CRT_SECURE_NO_DEPRECATE 识别为文件,错误如下:
cl: 命令行 warning D9024 :无法识别的源文件类型“C:/mozilla-build/msys/D_CRT_SECURE_NO_DEPRECATE”,假定为对象文件 arm-wince-as.c
将/D_CRT_SECURE_NO_DEPRECATE去掉之后这几个文件编译正常。
然后执行到devenv ../shunt/build/vs8/mozce_shunt_static.sln /rebuild "Release|Pocket PC 2003 (ARMV4)",启动了vs2005的IDE后提示:
命令行中指定了以下文件:c:/mozilla-build/msys/rebuild Release|Pocket PC2003 (ARMV4) 未找到这些文件,将无法加载,看起来也是将参数/rebuild "Release|Pocket PC 2003 (ARMV4)"当成了文件。手动输入devenv ../shunt/build/vs8/mozce_shunt_static.sln ,选择Pocket PC 2003 (ARMV4)编译了Release版的shunt.lib,然后将makefile文件中的此行语句注释掉,继续执行。

到了测试arm-wince-gcc.exe是否能正常编译文件的时候又出现错误,错误字串已经不记得了,错误原因是vs2005的路径在arm-wince-gcc中被固化为C:\Program Files\Microsoft Visual Studio 8,而事实上我的vs2005安装在D盘。。。修改相关代码后依然不能正常编译,继续检查,发现是mozilla\build\wince\tools\topsrcdir.h中将TOPSRCDIR设定为"/d/work/minimo2/mozilla",而vs2005无法识别这个路径,改成"d:/work/minimo2/mozilla"并且将这个文件设为只读后终于正常,一直到configure文件中int main() {
CONFIGURE_STATIC_ASSERT(0)
; return 0; }
出现下面错误:
configure(5624) : error C2118: negative subscript
意思时说有负数下标,查看CONFIGURE_STATIC_ASSERT宏定义,发现其中有typedef int static_assert_line_##line[(condition) ? 1 : -1]的写法。

崩溃了。。VS2005根本不支持负数下标~~~~~
为什么会有这么多问题。。。是不是我的环境有问题?
游客

返回顶部