在Debian Linux下安装ACE5.6菜鸟攻略(From:金蜗牛)

Debian Linux 下安装 ACE5.6 菜鸟攻略

 

本文作者 : 金蜗牛 Goldou

本文出处 :http://blog.csdn.net/goldou

    : 本文可以不经作者同意 , 任意复制 , 转载 , 但任何对本文的引用都请保留文章的作者 , 出处以及声明信息 . 谢谢 !

 

引子

公司的 Linux 编译服务器因为共用的关系极不稳定, 于是决定自己搭建一个虚拟机 Debina Linux + ACE 的编译环境。安装好 Linux+SSH+SAMBA+GCC 之后,开始着手来搭建 ACE 的编译环境。

 

一、文件下载: http://download.dre.vanderbilt.edu/. 我下载的版本是 ACE-5.6.3.tar.gz

二、解压这个文件到某个文件夹。如: /home/wqh/ACE_wrappers

  编译步骤参考 ACE 安装指南中的“ Using the Traditional ACE/GNU Configuration “,按此方法:使用传统的 make 方式,亦步亦趋,编译成功。简要的总结一下其步骤:

 

  1. 确认你的系统上已经安装了 GNU make 软件包。如果没有,安装 3.79.1 或更高的版本。这个当在 Debian Linux 下安装 GNU GCC 软件包的时候,已经默认安装了。

2 .在系统的配置文件中,添加关于 ACE 的环境变量。包括:

1)      ACE 源文件树所在的目录,比如我的机器上是 /home/wqh/ACE_wrappers 。通常用一个自定义的环境变量 ACE_ROOT 来表示。

2)      ACE 编译后生成动态链接库所在的目录。通常是在标准路经 (/lib, /usr/lib) 中。但对于非标准库,系统通常用保留的环境变量 - LD_LIBRARY_PATH 用来保存非标准共享库的路径。

3)      环境变量添加方法有三种:

3.1 )在 shell 中,导入环境变量。

3.2 )在 个人 home 目录下的 .bash_profile 里设置

3.3 /etc/profile ,此文件为系统的每个用户设置环境信息 , 当用户第一次登录时 , 该文件被执行 . 最简单和有效的方式是写入 /etc/profile 中建议使用第三种方式。以 root 的身份修改文件:

# vim /etc/profile

在文件末尾添加 4 行:

ACE_ROOT=/home/wqh/ACE_wrappers

export ACE_ROOT

LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib:/usr/local/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

并使这些环境变量生效(运行 source 或者重新登陆)。

3. 新建一个配置文件 config.h ,放置位置 $ACE_ROOT/ace/ 。在 Linux 下编译, $ACE_ROOT/ace/config.h 文件应该包含

#include "ace/config-linux.h"

 

4. 新建一个编译配置文件, $ACE_ROOT/include/makeinclude/platform_macros.GNU ,文件内容是:(注意没有 # 号)

include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU

 

5. 切换到 $ ACE_ROOT 目录下,使用 make 命令编译:

make

   6. 经过漫长的等待,不出意外的话, $ ACE_ROOT/lib 下顺利生成了动态库。主要有 libACE.so libACE.so.5.6.3 。为了保险起见,我还把这两个文件拷贝到了目录 /usr/lib 下。

通过以上步骤, ACE 的动态链接库已经顺利被编译出来。

 

四、最后,写一个简单的程序测试一下 ACE

迫不及待的使用了一个 ACE 的程序来验证编译的正确性,结果出现问题:

 

debian:/home/wqh/ACETest# g++ -o cli -lACE ACEClient.cpp

In file included from ACEClient.cpp:11:

/home/wqh/ACESource/ACE_wrappers/ace/INET_Addr.h:15:26: error: ace/pre.h: No such file or directory

……………

 

看来是编译器找不到 ACE 的头文件的位置。换个命令试一下:

g++ -o cli ACEClient.cpp   -I$ACE_ROOT -I./ -L$ACE_ROOT/ace -lACE  -ldl -lnsl

使用这一个编译命令,编译通过。再没有扰人的“ NO SUCH FILE… “的问题。困扰两天的问题终于算告一段落了。

g++ -o cli ACEClient.cpp  -I$ACE_ROOT  -lACE

这样也可以。原来是头文件路径没有设置好。

-----------------------------------------------------------------------------------------------------------------------------

ace.pc setup file

prefix=/usr/include/ace
exec_prefix=${prefix}
libdir=/usr/lib
includedir=${prefix}

Name: ace
Description: ACE Utility Library
Version: 5.7.1
Libs: -L${libdir} -lACE
Cflags: -I${includedir}

-----------------------------------------------------------------------------------------------------------------------------

Profile setup file


#ACE_ROOT=/home/ace5.7.1/ACE_wrappers
ACE_ROOT=/usr
export ACE_ROOT

LD_LIBRARY_PATH=$ACE_ROOT/include/ace:$ACE_ROOT/lib:/usr/local/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值