有位客户在移植到Solaris 10 for SPARC平台,遇到STLport4.6.2编译的问题。直接使用GCC,性能又不行。
使用Sun Studio呢,但不能编译通过。虽然Sun Studio自带STLport,但版本是4.5.3。STLport最新版本5.0.2在Sun Studio 11下使用也没有问题。但因为STLport同很多开源软件一样,并未能够保持版本之间的兼容性。考虑到不同版本修改代码会给软件开发者增加成本。就推荐了GCCFSS编译器。它是Sun公司提供的,基于GCC 4.0,并植入了特有针对SPARC平台优化的功能。当然它也是免费,因为GCC是使用GPL规范的。
整个编译非常顺利,只需要修改一些文件。因为GCCFSS是基于GCC 4.0,相对于STLport4.6.2比较新。这里记录下来供需要者参考:
- 设置PATH= /usr/sbin:/usr/bin:/opt/gcc/bin:/usr/ccs/bin
-
修改stlport/config/stl_gcc.h文件, 将第十行隐去。
//# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD
因为我们使用的GCC支持member template.
- 修改src/gcc-sun.mak 文件,将-gstabs选项改为-g。目前SGCC还不支持stabs调试格式。
-
根据STLport源文件的目录,创建一个链接,编译的时候会用到
ln -s /opt/gcc/include/c++/4.0.3 /export/home/adam/test/STLport-4.6.2/stlport/g++-v3
-
好了,开始 编译:
make -f gcc-sun.mak
编译好了,可以在test目录找到两个例子,可以“编编““跑跑“,测试一下结果。
相关链接:
- GCCFSS 4.0.3: http://www.sun.com/download/products.xml?id=44e24b9d
- STLPort 4.6.2: http://www.stlport.org/download.html