• <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>

            網(wǎng)絡(luò)服務(wù)器軟件開發(fā)/中間件開發(fā),關(guān)注ACE/ICE/boost

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

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

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

            (3)另一種方法是修改系統(tǒng)的/etc/profile文件(不過這樣還是以用戶變量為
            優(yōu)先設(shè)置,即如果已經(jīng)按照上面的兩種方法進(jìn)行了設(shè)置,那么以下的設(shè)置將不
            會(huì)被系統(tǒng)采用。)
            “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執(zhí)行一次,命令:
            “chmod 555 /etc/profile”
            “/etc/profile”
            這樣我們的ACE_ROOT就設(shè)置好了,可以用如下命令查看ACE_ROOT是否設(shè)置好了:
            “echo $ACE_ROOT”
            這個(gè)時(shí)候最好reboot啟動(dòng)一次linux。
            -------------------------------------------------------------------

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

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

            (3)ACE-install.sh放在哪個(gè)目錄下無所謂,因?yàn)榘惭b目錄是由剛才設(shè)定的$ACE_ROOT決定的。

            (4)vi ACE-install.sh
            我們可以看到缺省的,這個(gè)文件是用來在UNIX下做安裝的。所以我們要將其中的有
            關(guān)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”。
            -------------------------------------------------------------------

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

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

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

            (4)如果編譯中出現(xiàn)錯(cuò)誤,如“../apps/gperf”等,請(qǐng)編輯$ACE_ROOT/apps下的Makefile,
            將其中的有關(guān)“gperf”的部分注釋掉,這個(gè)東西只是一個(gè)例子,可以不去編譯它。
            強(qiáng)調(diào)一下,用ACE-install.sh來安裝,會(huì)編譯ACE、tests、apps等。
            最后會(huì)生成libACE.so及tests、apps下也會(huì)出來很多經(jīng)過編譯的文件。
            當(dāng)然如果你只是下載了ACE.tar.gz這樣的單個(gè)包來安裝,你可以手工改文件,再make,
            因?yàn)橹痪幾gACE,工作就少了很多,手工做還可以接受。

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

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

            (2)執(zhí)行make,OK后運(yùn)行。

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

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

            (2)拷貝第四步的那個(gè)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”。
            好,我們可以編譯一個(gè)我們自己的ACE程序了,make即可。應(yīng)該能通過,生成執(zhí)行文件client,
            大小大約為112Kb。運(yùn)行之,“./client”。
            -------------------------------------------------------------------

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

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

            [env][echo $ACE_ROOT]

            步驟2:
            針對(duì)不同版本創(chuàng)建兩個(gè)文件鏈接:
              在$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目錄下,新建一個(gè)目錄,用以執(zhí)行configure的結(jié)果
              mkdir aaa
              cd aaa
            在$ACE_ROOT/aaa中運(yùn)行
              ../configure
            在確認(rèn)結(jié)果無誤后,執(zhí)行
              make
            OK!



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

            [ldd 可執(zhí)行文件] 顯示該文件運(yùn)行時(shí)候需要的動(dòng)態(tài)鏈接庫

            [ipcs] 顯示系統(tǒng)的共享內(nèi)存、信號(hào)量、消息隊(duì)列的情況 ipc show
            [ipcrm <shm| msg| sem> id]

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

            Feedback

            # re: ACE在Linux環(huán)境下的編譯安裝[轉(zhuǎn)] 2010-03-30 15:32
            確實(shí)可以編譯,謝謝樓主的共享,頂!  回復(fù)  更多評(píng)論
              

            久久丝袜精品中文字幕| 中文精品久久久久人妻| 久久er国产精品免费观看2| 久久这里只有精品久久| 亚洲狠狠久久综合一区77777| 激情久久久久久久久久| 久久乐国产综合亚洲精品| 日韩人妻无码精品久久免费一| 久久精品成人免费网站| 久久精品视频一| 亚洲国产成人久久精品影视| 欧美精品丝袜久久久中文字幕 | 国产精品久久久久9999高清| 国产福利电影一区二区三区久久老子无码午夜伦不 | 午夜久久久久久禁播电影| 国内精品久久久久久久久| 久久精品毛片免费观看| 久久露脸国产精品| 色综合久久天天综合| 亚洲熟妇无码另类久久久| 久久精品成人免费国产片小草| 99久久精品国产一区二区| 伊人色综合久久天天| 久久久久女人精品毛片| 久久只有这精品99| 精品国产91久久久久久久a| 2021久久精品国产99国产精品| 久久99久国产麻精品66| 亚洲中文字幕伊人久久无码| 99久久亚洲综合精品成人| 精品久久久久久无码专区不卡| 久久久久av无码免费网| 精品伊人久久久| 狠狠色丁香久久婷婷综合图片| 久久久久免费精品国产| 国产精品毛片久久久久久久| 国产精品久久久久久一区二区三区| 亚洲国产精品无码久久一区二区| 欧美精品国产综合久久| 中文字幕无码av激情不卡久久| 日韩欧美亚洲国产精品字幕久久久|