下面的一个测试例子在Linux和Windows下均通过,代码无需改动,只需重新编译就可达到跨平台执行。从一个侧面反应了ACE在可移植性上的魅力。
ACE版本:5.6
编译环境:Linux version 2.6.18-4-686 (Debian 2.6.18.dfsg.1-12)
gcc version 4.1.2 20061115
//源码:welcome.cpp
#include"ace/OS.h"
#include"ace/Log_Msg.h"
intmain(intargc,char*argv[])
{
ACE_DEBUG((LM_DEBUG," (%P|%t) == Hello,This is a program about ACE_Timer_Value!/n"));
if(argc!=3)
{
ACE_ERROR_RETURN((LM_ERROR,"usage: %d""time1 time2/n"),1);
}
ACE_Time_Valuetime=ACE_OS::gettimeofday();
ACE_Time_Valuetimer1=time+ACE_Time_Value(ACE_OS::atoi(argv[1]));
ACE_Time_Valuetimer2=time+ACE_Time_Value(ACE_OS::atoi(argv[2]));
if(timer1>timer2)
ACE_DEBUG((LM_DEBUG,"timer 1 is greater/n"));
elseif(timer2>timer1)
ACE_DEBUG((LM_DEBUG,"timer 2 is greater/n"));
else
ACE_DEBUG((LM_DEBUG,"timers are equal/n"));
ACE_OS::exit(1);
return0;
}
编译:
$ g++ -o wel -lACE welcome.cpp
执行:
$ ./wel 20 10
结果:
(6232|3081746112)==Hello,This is a program about ACE_Timer_Value!
timer 1 is greater
测试环境:
$ cat /proc/version
Linux version 2.6.18-4-686 (Debian 2.6.18.dfsg.1-12) (waldi@debian.org) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Mon Mar 26 17:17:36 UTC 2007
在Windows下也同样可以通过编译。
测试环境:
Windows xp | vs2005
Windows下需要注意的一点是:
在项目的设置上:解决方案资源管理器->具体方案右键->属性->配置属性->链接器->输入->附加依赖项,添入ACEd.lib。
上面两个测试的前提是,ACE库均在系统下编译成功。