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

            yeqing

            C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
              1 Posts :: 14 Stories :: 10 Comments :: 0 Trackbacks

            在VS6上編譯ACE的方法

            1.下載最新的ACE Release版本壓縮包,解壓后目錄為: ACE-版本號(hào)\ACE_wrappers\
            2.加載工程文件,目錄: ACE_wrappers\ace\ace.dsw
            3.新建 config.h 文件到 ACE_wrappers\ace目錄下
            4.添加包含頭文件聲明: #include "ace/config-win32.h"
            5.添加宏定義 (注意:添加在 #include 之前)
            ?(1).#define ACE_HAS_WINNT4 0? //OS不是NT4.0或以后版本
            ?(2).#define ACE_HAS_STANDARD_CPP_LIBRARY 1? //使用標(biāo)準(zhǔn)C++庫(kù)
            ?(3).#define ACE_HAS_MFC 1????????? //使用MFC庫(kù)
            ?(4).#define THR_USE_AFX 1????????? //使用CWinThread產(chǎn)生新的線程類
            ?(5).#define ACE_USES_STATIC_MFC? 1 //靜態(tài)連接MFC庫(kù)
            ?(6).#define ACE_AS_STATIC_LIBS?? 1 //生成靜態(tài)的ACE庫(kù)
            ?(7).#define ACE_NO_INLINE????????? //是否使用內(nèi)聯(lián)函數(shù)在靜態(tài)庫(kù)內(nèi)
            6.編譯得到.lib和.dll文件

            好象使用時(shí)有個(gè)問(wèn)題,不知道大家有沒(méi)有碰到過(guò):
            1. 在使用ACE發(fā)布Release版本程序時(shí),
            TryEnterCriticalSection導(dǎo)致無(wú)法編譯的問(wèn)題

            解決方法:
            ? (1). 工程 Project-->setting-->C/C++? 寫(xiě)入:_WIN32_WINNT=0x0500
            ? (2).包含頭文件為:windows.h

            ?


            如果有“Cannot open include file: 'ace/SOCK_Acceptor.h':No such file or directory”
            工程-設(shè)置-C/C++: Preprocessor,附加包含路徑:D:/ACE_wrappers

            如果有“ You must link against multi-threaded libraries when using ACE (check your project settings)”
            工程-設(shè)置-C/C++: Code Generation - Use run-time library : Debug Multithreaded Dll

            如果有“error C2065: 'ACE_ERROR' : undeclared identifier”
            ??????? error C2065: 'ACE_DEBUG' : undeclared identifier
            #include "ace/Log_Msg.h"

            error C4716: 'ace_main_i' : must return a value
            ??? 在main中加入
            ??????? return 0;

            “error LNK2001: unresolved external symbol "__declspec(dllimport) int __cdecl”
            工程-設(shè)置-Link-Input: 對(duì)象/庫(kù)模塊:添加aced.lib????????????????????????
            附加庫(kù)路徑:D:\ACE_wrappers\ace????????????????
            ???????????????????
            編譯client中遇到的問(wèn)題
            1、error C2039: 'sprintf' : is not a member of 'ACE_OS'
            ???
            ??? #include "ace/OS_NS_stdio.h"
            ???
            2、error C2039: 'strlen' : is not a member of 'ACE_OS'

            ??? #include "ace/OS_NS_string.h"
            3、error C2059: syntax error : '?'
            ??? 錯(cuò)誤在這一句:? ACE_DEBUG((LM_DEBUG,?Usage egX <hostname> <port_number>\n?));
            ??? 將?改為"
            ???
            4、無(wú)法找到動(dòng)態(tài)鏈接庫(kù)aced.dll于指定的路徑
            ??? 為系統(tǒng)變量PATH加上D:\ACE_wrappers\bin
            ???
            ???
            ???
            靜態(tài)包含:
            ?? 工程-設(shè)置-C/C++-預(yù)處理程序定義中加入 ,ACE_AS_STATIC_LIBS
            ??
            *********************************************************************************

            在Linux系統(tǒng)中安裝和配置ACE

            準(zhǔn)備工作:

            1.確保你的Linux操作系統(tǒng)的開(kāi)發(fā)環(huán)境(gcc、make……)是完整且可用的。
            2.在安裝ACE的過(guò)程中,可能需要root權(quán)限,因此確保你擁有root帳戶的密碼。
            3.對(duì)于典型的Redhat9系統(tǒng),autoconf程序的版本可能過(guò)低,你需要首先升級(jí)它。

            ?? 升級(jí)的步驟如下:

            在控制臺(tái)中輸入 autoconf -V,查看你的autoconf程序的版本
            如果低于2.57g,你需要到
            http://www.gnu.org/software/autoconf/ 去下載最新版本的autoconf程序,目前autoconf程序的版本是2.59
            根據(jù)tarball中的安裝說(shuō)明,編譯并安裝升級(jí)autoconf程序
            開(kāi)始安裝:

            經(jīng)過(guò)上面的準(zhǔn)備工作,現(xiàn)在你已經(jīng)具備了安裝ACE的條件。下面開(kāi)始正式的安裝工作。

            首先確定ACE的安裝路徑,并建立相應(yīng)的目錄。
            這里,我們把ACE安裝在/home/zhc/ace/的目錄下,先執(zhí)行
            mkdir /home/zhc/ace
            然后將獲得的ACE源代碼包解至該目錄下。
            tar zxvf ACE-5.4.tar.gz /home/zhc/ace
            這時(shí),在ace的目錄下會(huì)建立一個(gè)名為ACE_wrappers的子目錄,ACE所有的源代碼、工具、和例子都在這個(gè)目錄中。
            先進(jìn)入該目錄,執(zhí)行
            cd /home/zhc/ace/ACE_wrappers
            然后建立一個(gè)子目錄,用于存放ACE編譯后的目標(biāo)文件
            mkdir build
            cd build
            接著,執(zhí)行configure腳本,檢查你的系統(tǒng)環(huán)境,配置并生成適合你的系統(tǒng)的Makefile文件。
            在執(zhí)行configure腳本時(shí),可以加入許多配置選項(xiàng),其詳細(xì)說(shuō)明可以參看ACE_wrappers目錄下的ACE-INSTALL.html文件,
            對(duì)于Redhat9系統(tǒng)來(lái)說(shuō),不必加任何參數(shù),ACE就可以很好的工作了。
            ../configure
            在漫長(zhǎng)的檢查和配置之后,如果沒(méi)有什么問(wèn)題,你就可以開(kāi)始編譯了。
            這一步很簡(jiǎn)單,執(zhí)行
            make
            然后,泡一杯茶,靜靜的等待就行了。
            如果編譯順利的通過(guò)(通常都會(huì)是這樣的),那么恭喜你,你已經(jīng)成功了一大半了,下面要做的僅僅是以些配置工作而已。
            接下來(lái)的工作是安裝,這一步是可選的,目的是把編譯生成的ACE的庫(kù)文件、頭文件和手冊(cè)頁(yè)等安裝到/usr/local的相應(yīng)目錄中去,為了今后使用的方便,我建議你還是進(jìn)行這一步,執(zhí)行
            su
            root's password
            make install
            安裝之后,我們就可以進(jìn)行最后的配置工作了。
            首先設(shè)置環(huán)境變量ACE_ROOT,執(zhí)行
            setenv ACE_ROOT /home/zhc/ace/ACE_wrappers
            注意其中的路徑要根據(jù)你的實(shí)際情況而定
            如果你不想每次都手工設(shè)定路徑,可以編輯你的bash的配置文件,執(zhí)行
            cd
            vi .bash_profile
            在其中填加如下兩行
            ACE_ROOT=/home/work/research/ace/ACE_wrappers
            export ACE_ROOT
            然后,在$ACE_ROOT/ace目錄中創(chuàng)建一個(gè)名為config.h的文件,在其中包含如下一行
            #include "ace/config-linux.h"
            或者,簡(jiǎn)單起見(jiàn),你也可以直接建立一個(gè)指向config-linux.h的符號(hào)鏈接,執(zhí)行
            ln -s config-linux.h config.h
            同樣,在$ACE_ROOT/include/makeinclude目錄中創(chuàng)建一個(gè)名為platform_macros.GNU的文件,在其中包含如下一行
            include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
            或者,簡(jiǎn)單起見(jiàn),你也可以直接建立一個(gè)指向platform_linux.GNU的符號(hào)鏈接,執(zhí)行
            ln -s platform_linux.GNU platform_macros.GNU
            最后一步,設(shè)置環(huán)境變量LD_LIBRARY_PATH,執(zhí)行
            setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$ACE_ROOT/lib:/usr/local/lib:$LD_LIBRARY_PATH
            或者在~/.bash_profile文件中添加如下兩行
            LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib:/usr/local/lib:$LD_LIBRARY_PATH
            export LD_LIBRARY_PATH
            安裝完成:

            經(jīng)過(guò)上面的步驟,ACE已經(jīng)安裝到了您的系統(tǒng)上了,
            下面我們將編譯并執(zhí)行ACE的例程以驗(yàn)證我們的工作。
            這里我們以《C++網(wǎng)絡(luò)編程,卷一》所帶的例子為例。

            進(jìn)入例程目錄,執(zhí)行
            cd $(ACE_ROOT)/examples/C++NPv1
            編譯例子程序,執(zhí)行
            make
            如果前面的安裝和配置正確,很快就能夠得到編譯后的例子程序。
            分別執(zhí)行一個(gè)服務(wù)器程序(隨便哪一個(gè)都行)和一個(gè)客戶端程序(Logging_Client),
            如果程序運(yùn)行正確,說(shuō)明前面的安裝和配置成功,下面你就可以開(kāi)始你的ACE學(xué)習(xí)之旅了

            ?

            posted on 2006-08-07 09:46 夜沁 閱讀(2333) 評(píng)論(2)  編輯 收藏 引用 所屬分類: ace

            Feedback

            # re: ACE的安裝 2006-09-23 15:42 acejoy
            國(guó)內(nèi)專業(yè)的ACE網(wǎng)絡(luò)編程、開(kāi)發(fā)論壇開(kāi)通:
            www.acejoy.com
            www.acedevelop.com
            涉及ACE使用和開(kāi)發(fā),中間件、服務(wù)器端軟件的設(shè)計(jì),P2P技術(shù),
            socket網(wǎng)絡(luò)編程、應(yīng)用開(kāi)發(fā)等內(nèi)容。
            歡迎加入,大家一起交流、學(xué)習(xí)成長(zhǎng)!
              回復(fù)  更多評(píng)論
              

            # re: ACE的安裝 2006-10-20 16:18 夜沁
            @acejoy 很高興參與
            大家共同進(jìn)步吧
              回復(fù)  更多評(píng)論
              

            久久性生大片免费观看性| 国产精品久久久久…| 中文字幕无码久久久| 伊人色综合久久天天网| 日韩人妻无码一区二区三区久久| 国产亚洲精品美女久久久| 国产精品99久久久久久董美香| 99久久免费国产精品| 伊人久久久AV老熟妇色| 日本三级久久网| 色偷偷偷久久伊人大杳蕉| 久久久久国色AV免费看图片| A级毛片无码久久精品免费 | 久久午夜夜伦鲁鲁片免费无码影视| 国内精品久久久久久久久电影网 | 欧美与黑人午夜性猛交久久久| 久久久无码精品亚洲日韩蜜臀浪潮 | 国产2021久久精品| 亚洲狠狠婷婷综合久久蜜芽| 久久er国产精品免费观看8| 久久久免费精品re6| 久久天天躁狠狠躁夜夜2020一| 91亚洲国产成人久久精品| 精品人妻久久久久久888| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 久久青青草原亚洲av无码app| 亚洲欧美一级久久精品| 久久国产视屏| 精品无码久久久久久久动漫| 久久免费高清视频| 国产99精品久久| 国产亚洲婷婷香蕉久久精品| 久久精品国产亚洲av高清漫画 | 久久一区二区三区免费| 香蕉久久夜色精品国产小说| 精品久久久久久国产潘金莲 | 欧美大香线蕉线伊人久久| 2019久久久高清456| 国产69精品久久久久9999APGF| 久久久亚洲裙底偷窥综合| 热99RE久久精品这里都是精品免费|