over 4 years ago

最近剛好有機會接觸到OpenDDS

上網做功課時發現中文的資料很少

所以決定記錄在這上面啦

進入正文!

OpenDDS是以C++進行實作,但由於專案的需要,必須使用JNI的方式從Java來呼叫API

所以這邊是提供For Java的安裝方式

主要的安裝流程可以參考在DDS/java/INSTALL這份文件

而我的環境是Ubuntu14

第一步:

安裝必要的套件

  1. JDK:去官網抓

  2. GNU g++, Make:應該已經內建了,如果沒有下個apt-get install安裝一下

  3. Perl:同上

  4. ACE ORB(TAO):http://download.ociweb.com/TAO-1.6a 主程式及Patch都要抓,

抓下來後解安裝到跟DDS同一層目錄下(ACE_wrappers)

第二步:

Building DDS and Java Bindings

  1. 設定環境變數:

由於每次要使用OpenDDS時都需要export一次環境變數,所以我將它弄成shell script

filename: export.sh  
  
    #!bin/bash  
    export ACE_ROOT=/home/user/ACE_wrappers  
    export TAO_ROOT=$ACE_ROOT/TAO  
    export MPC_ROOT=$ACE_ROOT/MPC  
    export DDS_ROOT=/home/user/DDS  
    export PATH=$ACE_ROOT/bin:$DDS_ROOT/bin:$PATH  
    export LD_LIBRARY_PATH=$ACE_ROOT/lib:$DDS_ROOT/lib:$LD_LIBRARY_PATH  
    export JAVA_HOME=/usr/lib/jvm/java-7-oracle  
    export JAVA_PLATFORM=linux  
    echo FINISH  
Ps. user要換成自己的username 執行方式:  
    source ./export.sh  
  1. 設定TAO

2.1 建立 $ACE_ROOT/include/makeinclude/platform_macros.GNU

內容如下

include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU  
java=1  

2.2 建立 $ACE_ROOT/bin/MakeProjectCreator/config/default.features

內容如下

java=1  

2.3 建立$ACE_ROOT/ace/config.h

內容如下

#include "ace/config-linux.h"  
  1. Build TAO Core

    基本上就是照著做就可以囉

    cd $ACE_ROOT/ace  
    make ACE  
    cd $ACE_ROOT/apps/gperf/src  
    make  
    cd $TAO_ROOT/TAO_IDL  
    make  
    cd $TAO_ROOT/tao  
    make  
    cd $TAO_ROOT/orbsvcs/orbsvcs  
    make Svc_Utils 
    

    PS. 當時在make ACE時,有一個DEV.....Reactor.cpp一直compile不過,後來上網查了資料,發現OpenDDS似乎不會用到這個,於是就去MAKEFILE.ACE中將相關的compile指令刪除,就OK了!

  2. Build OpenDDS C++ lib

    cd $DDS_ROOT/dds  
    make  
    
  3. Build the OpenDDS Java Bindings

    cd $DDS_ROOT/java  
    make  
    
  4. 基本上如果沒遇到error等程咬金,應該已經將OpenDDS整個setup起來了!

    可以用以下方式來進行check

    cd $DDS_ROOT/java/tests/multirepo  
    ./run_test.pl  
    

    如果看到 "test PASSED."

恭喜你!你已經成功建置完成啦

← Let's go! [Linux]"source" "sh" 差異 →
 
comments powered by Disqus