debian9.6安装TAO过程

TAO是ACE的ORB,所以需要先安装ACE,详细过程请参考debian9.6安装ACE过程

1,下载TAO

依旧是在官网上,http://download.dre.vanderbilt.edu/,这个是美国范德堡大学的一个网站。因为我下载的是ACE+TAO,所以连带下载了TAO,解压之后就在ACE_wrappers下有一个TAO的文件夹。

2,配置~/.bashrc

## vi ~/.bashrc
末尾添加
export TAO_ROOT=$ACE_ROOT/TAO
## source ~/.bashrc  
使得配置生效

3,预编译

按理说现在就可以make,不过我按照http://bbs.chinaunix.net/thread-1012206-1-1.html的浪了一把,我把原来的GNUmakefile文件给删除了,即

##  find . –name “*GNUmakefile*”  | xargs rm 

然后想自己生成新的makefile,结果我采用这条命令,即

通过mwc.pl命令及一个.mwc file的输入文件,就会产生默认的makefile文件
## $ACE_ROOT/bin/mwc.pl TAO_ACE.mwc
问题1,提示我没有配置CIAO_ROOT和DANCE_ROOT
问题2,以及没有指定-type

问题1,我在http://download.dre.vanderbilt.edu/官网上下载了CIAO和DANCE的安装包,解压放到了$ACE_ROOT下,即和TAO同一根目录,然后配置~/.bashrc

## vi ~/.bashrc
在末尾添加
export CIAO_ROOT=$ACE_ROOT/CIAO
export DANCE_ROOT=$ACE_ROOT/DANCE
## source ~/.bashrc
使得配置生效

问题2,根据提示there is no longer a default project type,网上没有找到这个问题的解决方式,结果我发现了在TAO目录下有个TAO-INSTALL.html,我试着去打开,

## cd $ACE_ROOT/TAO
## firefox TAO_INSTALL.html

发现里面有一个

## $ACE_ROOT/bin/mwc.p TAO.mwc -type gnuace

试了一下,可以了。 

4,正式编译

## make

这个编译时间比较久。

以下内容,现在不是很理解,只是照着做了。

5,安装,一定是root

## make install

几分钟之后就安装了。

6,启动命名服务

## $TAO_ROOT/orbsvcs/Naming_Service/tao_cosnaming -m 1

以上命令可能随版本的变化而变化,具体请看,ACE_wrappers\TAO\docs\tutorials\Quoter\index.html 下文档“TAO's Naming Service”一项。 

如果没有第5步就会出现这个问题,

## $TAO_ROOT/orbsvcs/Naming_Service/tao_cosnaming -m 1
/home/guoyanzhang/ACE_wrappers/TAO/orbsvcs/Naming_Service/tao_cosnaming: error while loading shared libraries: libTAO_ImR_Client.so.2.5.3: cannot open shared object file: No such file or directory

7, 启动事件服务

## $TAO_ROOT/orbsvcs/CosEvent_Service/tao_cosevent

以上命令可能随版本的变化而变化,具体请看,ACE_wrappers\TAO\docs\tutorials\Quoter\index.html 下文档“TAO's COS Event Service”一项。

如果没有第5步,就会有这个问题,

## $TAO_ROOT/orbsvcs/CosEvent_Service/tao_cosevent
/home/guoyanzhang/ACE_wrappers/TAO/orbsvcs/Naming_Service/tao_cosnaming: error while loading shared libraries: libTAO_IORTable.so.2.5.3: cannot open shared object file: No such file or directory

 结果我在开启这个服务的时候出现以下问题,

## $TAO_ROOT/orbsvcs/CosEvent_Service/tao_cosevent
(30427|140682155001664)EXCEPTION,/home/guoyanzhang/ACE_wrappers/TAO/orbsvcs/CosEvent_Service/tao_cosevent
system exception,ID 'IDL:omg.org/CORBA/TRANSIENT:1.0'
OMG minor code (2),described as 'No usable profile in IOR.',completed=NO

查了一下,我判断可能是硬件环境导致的。(目前还无此需求,这个问题做为遗留问题)

可参考http://kb.cloudblue.com/en/116374

ACE_wrappers\TAO\docs\tutorials\Quoter\index.html提到了测试方法,但是client和server怎么得到?

解决方法:

其实很简单,增加一下这个就好了,

## vi ~/.bashrc
export LD_LIBARY_PATH=$LD_LIBRARY_PATH:$ACE_ROOT/ace:$ACE_ROOT/lib:$TAO_ROOT

我在github里面求助了jwillemsen,才解决的,链接https://github.com/DOCGroup/ACE_TAO/issues/756

里面有我测试的例子,我这里就不详细写了,那里写的很清楚。

8,启动通知服务

## $TAO_ROOT/orbsvcs/Notify_Service/Notify_Service -Factory NotifyEventChannelFactory -NameSvc -Channel NotifyEventChannel -ORBRunThreads 1  -ORBEndpoint iiop://199.3.13.7:12002 

以上命令可能随版本的变化而变化,具体请看,ACE_wrappers\TAO\orbsvcs\Notify_Service\README。 

 9,检查服务运行状况

## netstat -an | grep 1200

 10,测试(这步有疑问,以后再解决)

## cd $TAO_ROOT/orbsvcs/tests  
## $ACE_ROOT/bin/mwc.pl tests.mwc  
## make

参考:http://bbs.chinaunix.net/thread-1012206-1-1.html

猜你喜欢

转载自blog.csdn.net/weixin_39465823/article/details/84375184