![]() |
|
||||||||||||||
| | 网站首页 | 数据库教程 | web编程 | 服务器 | 程序设计 | | ||
|
||
|
||||||
| Solaris10下,使用SunStudio11编译ACE | ||||||
作者:佚名 文章来源:不详 点击数: 更新时间:2007-9-12 ![]() |
||||||
|
系统:Solaris10(x86),安装在VMware(6.0)下 编译器:SunStudio11带的CC,版本为Sun C++ 5.8 2005/10/13 ACE:5.5 1、下载,解压ACE: 去网站上下载ACE,然后解压。
2、创建环境变量: 以root用户为例,编辑/.profile,加入如下内容: PATH=$PATH:/opt/SUNWspro/bin:/usr/sfw/bin;export PATH 注销,重新登录。 3、进入/opt/ACE_wrappers/ace目录,创建config.h,内容如下: #include "ace/config-sunos5.10.h" 4、进入/opt/ACE_wrappers/include/makeinclude目录,创建platform_macros.GNU,内容如下: include $(ACE_ROOT)/include/makeinclude/platform_sunos5_sunc++.GNU 5、处理一个bug: 进入/opt/ACE_wrappers/ace目录,打开文件Timer_Wheel_T.h,找到如下内容(在211行附近): ACE_UNIMPLEMENTED_FUNC ( 将其改为: ACE_UNIMPLEMENTED_FUNC(ACE_Timer_Wheel_T (const ACE_Timer_Wheel_T<TYPE, FUNCTOR, ACE_LOCK> &)) 即不折行。 不知道在Solaris10下这个宏为什么会展开失败(windows下正确),把它改成在一行就行了。 6.进入/opt/ACE_wrappers/ace目录,输入gmake --------------------------------- 测试的例子: //guard.cpp #include "ace/Thread.h" int number = 0; ACE_Thread_Mutex metux; void* f() ::number++; return 0; int main(int argc, char *argv[]) ACE_Thread::spawn_n(threadID, iThread, ACE_THR_FUNC(f), for (int i = 0; i < iThread; i++) return 0; 编译: CC -o guard.out guard.cpp -lACE -I$ACE_ROOT -lrt -DACE_HAS_STHREADS -DACE_LACKS_RWLOCK_T -DACE_HAS_EXCEPTIONS 运行: ./guard.out 结果: 1 本文来源:http://blog.csdn.net/lw1a2/archive/2007/08/24/1757965.aspx
|
||||||
| 文章录入:admin 责任编辑:admin | ||||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | ||||||
| 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告 | 网站地图 | 管理登录 | | |||
|