ACE的编译与安装(linux篇)

(一)源码包获取

  这个和windows篇的相同,不再赘述!

 

(二)编译步骤

1、 用tar zxvf命令解压至一目录,如:/usr/local/ACE_wrappers

2、 在源码解压目录下创建一个编译目录如objdir,即/usr/local/ACE_wrappers/objdir

3、 cd objdir,执行../configure && make && make install;

 

注:如果RP足够好,编译能很顺利完成,但我在编译时出一许多问题,在网上找了一圈资料,发现和我类似的哥们很多:(,现小结如下

1)遇到couldn't find openssl/bio.h错误

解决办法:

先检查机器上是否安装openssl,建议最好,安装一个最新版本的,到http://www.openssl.org/source/上下一个下载,我安装的是1.0.0.0的,安装好以后,bio.h 文件在 /usr/local/ssl/include/openssl/bio.h 目录中,简单的办法是:

用 root 用户进行下面的操作.
 cd /usr/include
 ln -s /usr/local/ssl/include/openssl openssl

 

2)链接时碰到下面一大堆错误:

client-SSL-client.o: In function `ACE_SSL_SOCK_Stream::close()':
../../../../ace/SSL/SSL_SOCK_Stream.i:278: undefined reference to `SSL_shutdown'
../../../../ace/SSL/SSL_SOCK_Stream.i:280: undefined reference to `SSL_get_error'
../../../../ace/SSL/SSL_SOCK_Stream.i:289: undefined reference to `SSL_clear'

解决办法:

在当胶编译目录下,分别找到examples/IPC_SAP/SSL_SAP/Makefile和tests/SSL/Makefile两个文件,在里面找到"LIBS = -lrt -ldl" 这一项,将其修改为:
LIBS = -lrt -ldl /usr/lib/libssl.a /usr/lib/libcrypto.a
上面两个.a静态库的路径以你实际存放的路径为准

 

(三)hello, world

复用前面的例子,呵,先享受ACE带到跨平台的优势了:)

#include "ace/ACE.h"
#include "ace/OS_NS_stdio.h"
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
    char msg[100] = {0};
    ACE_OS::sprintf(msg, "hello %s ", "world");
    cout << msg << endl;
    return 0;
}
执行g++ -g -o hello hello.cpp -lACE编译,然后运行./hello,熟悉的hello, world出现了

 

到这里ACE的编译环境搭建完毕了,从此,开始ACE的学习征途了!~~

 

你可能感兴趣的:(linux,Stream,function,ssl,reference,跨平台)