• <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 閱讀(4680) 評論(1)  編輯 收藏 引用 所屬分類: ACE

            Feedback

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

            久久久久四虎国产精品| 久久综合亚洲欧美成人| 人妻精品久久久久中文字幕| 久久影视综合亚洲| 狠狠色丁香久久婷婷综合图片| 亚洲精品无码久久久影院相关影片 | 亚洲精品无码专区久久久| 亚洲香蕉网久久综合影视| 久久96国产精品久久久| 伊人色综合九久久天天蜜桃| 韩国免费A级毛片久久| 国产成人无码精品久久久免费 | 日本国产精品久久| 国产精品美女久久久久| 亚洲精品tv久久久久久久久久| 久久综合给合久久国产免费| 人妻中文久久久久| 国产精品内射久久久久欢欢| 麻豆亚洲AV永久无码精品久久| 久久午夜综合久久| 99久久精品无码一区二区毛片 | 99久久国语露脸精品国产| 亚洲日本va午夜中文字幕久久| 91精品国产综合久久精品| 久久天天躁夜夜躁狠狠躁2022| 99久久久久| 91精品婷婷国产综合久久| 99久久国语露脸精品国产| 亚洲国产精品久久久天堂| 亚洲精品无码久久久久AV麻豆| AAA级久久久精品无码区| 成人久久久观看免费毛片| 久久精品国产清高在天天线| 亚洲AV成人无码久久精品老人| 久久婷婷是五月综合色狠狠| 久久久久无码中| 精品久久综合1区2区3区激情| Xx性欧美肥妇精品久久久久久| 久久99中文字幕久久| 欧美激情精品久久久久| 麻豆精品久久精品色综合|