下面的一个测试例子在
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"
int
main
(
int
argc
,
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_Value
time
=
ACE_OS
::
gettimeofday
();
ACE_Time_Value
timer1
=
time
+
ACE_Time_Value
(
ACE_OS
::
atoi
(
argv
[
1
]));
ACE_Time_Value
timer2
=
time
+
ACE_Time_Value
(
ACE_OS
::
atoi
(
argv
[
2
]));
if
(
timer1
>
timer2
)
ACE_DEBUG
((
LM_DEBUG
,
"timer 1 is greater/n"
));
else
if
(
timer2
>
timer1
)
ACE_DEBUG
((
LM_DEBUG
,
"timer 2 is greater/n"
));
else
ACE_DEBUG
((
LM_DEBUG
,
"timers are equal/n"
));
ACE_OS
::
exit
(
1
);
return
0
;
}
编译:
$ 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
库均在系统下编译成功。