感谢支持
我们一直在努力

ACE for Linux 安装

首先:下载ACE包,这里使用ACE-5.8.tar.gz,其他下载地址点击这里。


这里只安装了ACE,其他的包没有涉及。


1.在目录$HOME/ACE中解压ACE-5.8.tar.gz, tar -xvf ACE-5.8.tar.gz,当前目录下生成目录ACE_wrappers。我的环境下:$HOME/ACE == /home/worker/ACE


2. 设置ACE_ROOT环境变量:(可以在/etc/profile中设置(我在这里设置),也可以在个人home目录下的.bash_profile里设置)


    ACE_ROOT = /home/worker/ACE/ACE_wrappers
    export 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. 设置LD_LIBRARY_PATH环境变量:
    LD_LIBRARY_PATH = $ACE_ROOT/lib:$LD_LIBRARY_PATH
    export LD_LIBRARY_PATH
 (补允:注意是$ACE_ROOT/lib而不是$ACE_ROOT/ace,很多网站上都是写后者,貌似是不对的,至少我没有编译通过)


4. 在目录 $ ACE_ROOT中新建目录 build, mkdir  build。


   进入build目录运行配置脚本  . ./configure [options]


   常用的选项有: CXXFLAGS=-O3   –disable-debug   –disable-ace-examples   –disable-ace-tests   –without-tao


   补充:如果要接定安装路径(默认安装在/usr/local),可以再加上参数:–prefix [安装路径]


   即: . ./configure  –prefix=/usr/local/ACE   CXXFLAGS=-O3   –disable-debug   –disable-ace-examples   –disable-ace-tests   –without-tao


5. 编译#>make


   该过程可能出现有些头文件没有找到的错误,需要运行相关命令进行安装,我碰到的错误是openssl的相关头文件没有,所有需要安装libopenssl的开发包


   zypper search   *openssl*   用于查找关于openssl的所有包,挑选需要的进行安装,这里需要libopenssl-devel


   zypper  install libopenssl-devel    (这里用的是SUSElinux,所有采用这条命令,


如果是其他版本采用不同的命令,如CentOS  Fedora: yum search *openssl*   yum install libopenssl-devel)

6. 安装 #> make install(补充:如果执行了安装,原来的$ACE_ROOT可以改为安装后的路径)

    在ACE5.5中使用Epoll:
    ACE_wrappers/ace/config-linux.h,增加一行:#define ACE_HAS_EVENT_POLL
    在应用程序的makefile中加入 -DACE_HAS_EVENT_POLL,重新make应用程序。OK,打完收工。(修正:只需要在ACE_wrappers/ace/config-linux.h,增加一行:#define ACE_HAS_EVENT_POLL就行了,没必要在每个应用程序中都加入-DACE_HAS_EVENT_POLL)


补充:ace中很多功能并没有默认编译进来,比如epoll,fastmemcpy等,因此如果要使用这些功能,必须修改config.h文件,加入相应的宏,对ace重编译。


        如果想用MSVC标准C++头,则需要在ace/config.h中增加定义:
       #define ACE_HAS_STANDARD_CPP_LIBRARY 1
      config.h文件内容添加,如下:
       #define ACE_HAS_STANDARD_CPP_LIBRARY 1     //  使用标准C++头
       #define ACE_NO_INLINE  1  //  不使用内连函数,能减小LIB和EXE的大小


7.测试.


 #include <ace/Log_Msg.h>
#include <ace/OS_main.h>


using namespace std;


int ACE_TMAIN(int argc, ACE_TCHAR *argv[])
{
        ACE_DEBUG((LM_DEBUG, ACE_TEXT(“Hello World!”)));
        return 0;
}


编译:g++ -I/usr/local/ACE/include -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF”HelloWorld.d” -MT”HelloWorld.d” -o “demo.o” “demo.cpp”


链接: g++ -I/usr/local/ACE/include  -L/usr/local/ACE/lib  -lACE -lrt -lpthread  -o “ACETest” demo.o


运行:./ACETest   (补充:此时的LD_LIBRARY_PATH目录必须指向ACE的lib目录这里为/usr/local/ACE/lib,否则运行出错。


执行成功输出:Hello World!

赞(0) 打赏
转载请注明出处:服务器评测 » ACE for Linux 安装
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏