ACE TAO在solaris下的编译!
1. 编译需要sun studio 11来完成12好像会报告很多错误.
2. 编译源文件需要为unix格式(否则有很多宏编译失败),而zip解压后其中是dos格式的文件!
3. 在ace/Array_Map.h的124行会检查是否为SUN CC编译器,但是由于该版本比较高.导致__SUNPRO_CC的值比较大,导致该行编译宏检查失败.
解决方案:
1. 下载11
2. 在$ACE_ROOT的父目录中运行 find ./ACE_wrappers -type f >file_list得到所有文本文件的列表.
然后编写小脚本进行格式转换(d2u)
#/usr/bin/ksh
for i in "$@"
do
dos2unix $i >a
mv a $i
done
3. cat file_list | xargs d2u
4. 在Array_Map.h的124行,只保留对__SUNPRO_CC的检查,删除值大小和另外一个宏的检测!
5. 创建config.h 用命令 echo '#include 'ace/config-sunos5.10.h' > $ACE_ROOT/ace/config.h
6. 创建platform_macros.GNU 用命令: echo 'include $(ACE_ROOT)/include/makeinclude/platform_sunos5_sunc++.GNU' > $(ACE_ROOT)/include/makeinclude/platform_macros.GNU
7. 进入$ACE_ROOT/ace 运行make
8. 进入$ACE_ROOT/TAO 目录运行make
9. 进入apps/gperf 运行make. 如果没有此行.好像实际编译程序会出错!
在window XP cygwin下编译:
1. 需要在config.h中添加:
#define ACE_HAS_4_4BSD_SENDMSG_RECVMSG
2. 编译中出现有些函数找不到的情况! 可以试着找到源码的位置! 然后从zip文件重新解压该文件!(不知道是不是rar的bug, 文件会解丢了)
$ACE_ROOT/TAO/TAO_IDL/fe/fe_lookup.cpp 在window下和solaris下都曾经出过错! 很奇怪!
阅读(1824) | 评论(0) | 转发(1) |