• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            網絡服務器軟件開發/中間件開發,關注ACE/ICE/boost

            C++博客 首頁 新隨筆 聯系 聚合 管理
              152 Posts :: 3 Stories :: 172 Comments :: 0 Trackbacks
            ACE在Linux環境下的編譯安裝
                            [Author by Jet Yan in April 4,2005]

            第一步 設置ACE_ROOT環境變量
            (1)export ACE_ROOT=/home/jet/ACE_wrappers
            export LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH

            (2)或者直接在用戶目錄下編輯.bashrc文件,內容如下:
            ACE_ROOT=/home/jet/ACE_wrappers
            export ACE_ROOT
            LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
            export LD_LIBRARY_PATH
            然后重新登陸

            (3)另一種方法是修改系統的/etc/profile文件(不過這樣還是以用戶變量為
            優先設置,即如果已經按照上面的兩種方法進行了設置,那么以下的設置將不
            會被系統采用。)
            “vi /etc/profile”
            在其中加入4行
            ACE_ROOT=/opt/ACE
            export ACE_ROOT
            LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
            export LD_LIBRARY_PATH
            我是加在“export PATH USER….”后的。完成后將/etc/profile執行一次,命令:
            “chmod 555 /etc/profile”
            “/etc/profile”
            這樣我們的ACE_ROOT就設置好了,可以用如下命令查看ACE_ROOT是否設置好了:
            “echo $ACE_ROOT”
            這個時候最好reboot啟動一次linux。
            -------------------------------------------------------------------

            第二步 解壓出ACE-install.sh文件并修改
            (1)在/home/jet下建立子目錄ACEInstall,將ACE.tar.gz上傳至該目錄

            (2)從ACE.tar.gz解壓出單個文件ACE-install.sh:
            tar –zxvf ACE.tar.gz ACE_wrappers/ACE-install.sh

            (3)ACE-install.sh放在哪個目錄下無所謂,因為安裝目錄是由剛才設定的$ACE_ROOT決定的。

            (4)vi ACE-install.sh
            我們可以看到缺省的,這個文件是用來在UNIX下做安裝的。所以我們要將其中的有
            關UNIX的部分換成linux即可。
            “MY_ACEDIR=${HOME}/aceconfig” -->> “MY_ACEDIR=/home/my/ACE”
            “MY_ACE_CONFIG=config-sunos5.4-sunc++-4.x.h” -->> “MY_ACE_CONFIG=config-linux.h”
            “MY_ACE_GNU_MACROS=platform_sunos5_sunc++.GNU” -->> “MY_ACE_GNU_MACROS=platform_linux.GNU”
            好了,文件修改完畢,保存退出“:wq”。
            -------------------------------------------------------------------

            第三步 運行ACE-install.sh(shell腳本)安裝ACE
            (1)當前目錄/home/jet/ACEInstall/ACE_wrappers

            (2)修改ACE-install.sh的屬性,使其可執行
            chmod 777 ACE-install.sh

            (3)執行:
            ./ACE-install.sh
            此后將是較長時間的解包、編譯等待時間。這個過程將不會出現任何錯誤,因為安裝腳本
            將為我們做很多事情,如:生成config.h,生成platform_macros.GNU。(即使出現刪除
            文件的錯誤,對結果應該沒有影響,遇到這種情況要具體分析一下。)
            因此就不需要按ACE-install.html中說的那樣手工做如下改動:
              在$ACE_ROOT/ace目錄下:
              ln -s config-linux.h config.h
              在$ACE_ROOT/include/makeinclude/目錄下:
              ln -s platform_linux.GNU platform_macros.GNU
            (Windows中沒有文件連接這一說,所以要自己生成一個config.h文件,再在它的里面加一
            句話“#include "ace/config-win32.h"”。)

            (4)如果編譯中出現錯誤,如“../apps/gperf”等,請編輯$ACE_ROOT/apps下的Makefile,
            將其中的有關“gperf”的部分注釋掉,這個東西只是一個例子,可以不去編譯它。
            強調一下,用ACE-install.sh來安裝,會編譯ACE、tests、apps等。
            最后會生成libACE.so及tests、apps下也會出來很多經過編譯的文件。
            當然如果你只是下載了ACE.tar.gz這樣的單個包來安裝,你可以手工改文件,再make,
            因為只編譯ACE,工作就少了很多,手工做還可以接受。

            (5)編譯過程日志放在/tmp/myacemaker.err
            -------------------------------------------------------------------

            第四步 直接測試ACE提供的例子
            (1)在$ACE_ROOT/examples/Synch中,修改proc_sema.cpp文件如下:
            #include "ace/OS_NS_stdio.h"
            在main函數中
            ACE_OS::printf("Hello,World! \n");

            (2)執行make,OK后運行。

            (3)如果運行時裝在不到share object,可能是lib路徑問題,因為.so文件是程序運行過程中
            裝載的,不是在編譯的時候,因此要設置LD_LIBRARY_PATH:
            [jet@S]$ export LD_LIBRARY_PATH=/home/jet/ACE_wrappers/lib:$LD_LIBRARY_PATH
            -------------------------------------------------------------------

            第五步 寫一個簡單的程序測試一下ACE
            (1)在/home/jet/下新建ACETest子目錄,寫好程序如client.cpp,上傳到該目錄

            (2)拷貝第四步的那個Makefile文件到該目錄,并做如下修改
            修改其中輸出文件名“BIN = hello”,并修改“
            .obj/proc_sema.o .obj/proc_sema.so .shobj/proc_sema.o .shobj/proc_sema.so: proc_sema.cpp \”
            中后面的“proc_sema.cpp”成“client.cpp”。
            好,我們可以編譯一個我們自己的ACE程序了,make即可。應該能通過,生成執行文件client,
            大小大約為112Kb。運行之,“./client”。
            -------------------------------------------------------------------

            =================================================
            另一種更為直接的安裝方法:

            步驟1:設置環境變量
            export ACE_ROOT=/home/jet/ACE_wrappers
            export LD_LIBRARY_PATH=$ACE_ROOT/ace:$LD_LIBRARY_PATH
            也可以直接修改.bashrc文件,以免退出后設置的這些變量消失

            [env][echo $ACE_ROOT]

            步驟2:
            針對不同版本創建兩個文件鏈接:
              在$ACE_ROOT/ace目錄下:
              ln -s config-linux.h config.h
              在$ACE_ROOT/include/makeinclude/目錄下:
              ln -s platform_linux.GNU platform_macros.GNU

            步驟3:
            在$ACE_ROOT目錄下,新建一個目錄,用以執行configure的結果
              mkdir aaa
              cd aaa
            在$ACE_ROOT/aaa中運行
              ../configure
            在確認結果無誤后,執行
              make
            OK!



            [rm -f -r *]刪除目錄下所有的文件和子目錄-f是強制force刪除,-r是代表目錄也刪除

            [ldd 可執行文件] 顯示該文件運行時候需要的動態鏈接庫

            [ipcs] 顯示系統的共享內存、信號量、消息隊列的情況 ipc show
            [ipcrm <shm| msg| sem> id]

            posted on 2007-07-15 13:06 true 閱讀(4679) 評論(1)  編輯 收藏 引用 所屬分類: ACE

            Feedback

            # re: ACE在Linux環境下的編譯安裝[轉] 2010-03-30 15:32
            確實可以編譯,謝謝樓主的共享,頂!  回復  更多評論
              

            久久99这里只有精品国产| 少妇久久久久久久久久| 91精品国产91久久久久久蜜臀| 天堂久久天堂AV色综合| 久久ww精品w免费人成| 国内精品免费久久影院| 人妻精品久久久久中文字幕 | 亚洲AV日韩精品久久久久久久| 精品久久久无码21p发布| 久久久精品一区二区三区| 久久久综合香蕉尹人综合网| 亚洲国产精品无码久久98| 日韩精品国产自在久久现线拍 | 亚洲午夜久久久久妓女影院| 7777久久亚洲中文字幕| 亚洲国产综合久久天堂| 狠狠色丁香久久综合五月| 久久国内免费视频| 亚洲国产天堂久久综合网站| 精品久久久中文字幕人妻| 人妻中文久久久久| 狠狠综合久久综合中文88 | 久久久久国产| 日本道色综合久久影院| 久久精品国产99久久久| 精品久久久久久无码不卡| 久久青青国产| 久久e热在这里只有国产中文精品99| 久久精品国产亚洲精品2020| 久久精品一区二区三区AV| 思思久久99热免费精品6| 国产高潮久久免费观看| 日韩亚洲欧美久久久www综合网| 人妻少妇久久中文字幕 | 久久亚洲精品中文字幕三区| 国产精品美女久久久m| 欧美噜噜久久久XXX| 久久久久99精品成人片欧美| 伊人色综合久久天天人手人婷| av色综合久久天堂av色综合在| 久久天天躁夜夜躁狠狠躁2022|