在Linux操作系统下安装ACE的方法,linuxaceACE支持PHP,N
在Linux操作系统下安装ACE的方法,linuxaceACE支持PHP,N
什么是ACE?ACE(Aliyun Cloud Engine)是一个基于云计算基础架构的网络应用程序托管环境,帮助应用开发者简化网络应用程序的构建和维护,并可根据应用访问量和数据存储的增长进行扩展。ACE支持PHP,NODE.JS语言编写的应用程序;支持在线创建mysql远程数据库应用。
最近打算开始学习Linux下的C++程序开发,经过几天的搜索,发现ACE这套框架不错,最主要的是能够跨平台。不过在安装的过程中还是走了不少的弯路,在此记录下来。安装ACE,网络上有很多资料,百度google 一大把,我就找个比较有代表性的贴在下边吧。主要是想说一下遇到的问题。
下载安装包:http://download.dre.vanderbilt.edu/
首先把文件解压,我解压在了/Software文件夹下,解压后会出现一个名字为ACE_wrappers的文件夹。这样所有ACE的源文件都在/Software/ACE_wrappers里面
配置环境变量:
# vi /etc/profile
增加如下的内容:
ACE_ROOT=/Software/ACE_wrappers #就是上面存放ACE源文件的目录 export ACE_ROOT LD_LIBARY_PATH=$ACE_ROOT/ace:$LD_LIBARY_PATH export LD_LIBARY_PATH
# source /etc/profile
开始安装ACE
# cd /Software/ACE_wrappers
# vi ace/config.h
增加如下信息:
#include “ace/config-linux.h”
如果想用MSVC标准C++头,则需要在ace/config.h中增加定义:
#define ACE_HAS_STANDARD_CPP_LIBARY 1
我的config.h文件内容如下:
#define ACE_HAS_STANDARD_CPP_LIBARY 1 #使用标准C++头 #define ACE_NO_INLINE #不使用内连函数,能减小LIB和EXE的大小 #include “ace/config-linux.h”
保存后退出
# mkdir build #新建一个build文件夹
# cd build
# ../configure --prefix=/usr/local/ACE #在这里我指定了ACE的安装路径
# make & install
第一个问题,在make的时候找不到了ssl这个东西。这个ssl具体来说是网络上一个安全协议。系统默认是安装的,但是我在编译时候一直出现这个问题,原来是打开了。我的版本号是6.0的。所以,经过查找帮助文档,configure这个配置的时候:
--enable-ssl (yes): Include the ACE_SSL library when building ACE. Requires the SSL components to be available using the compiler's and linker's default search directories.
--with-openssl: Specifies the root directory of the OpenSSL installation; expects the specified directory to have include and lib subdirectories. To specify other locations for the header and libraries, use one or both of the following.
--with-openssl-include: Specify the directory containing the OpenSSL header files.
--with-openssl-libdir: Specify the directory containing the OpenSSL libraries.
解决办法:应该关闭它:../configure --disable-ssl
配置ACE环境
# vi /etc/ld.so.conf.d/ace.conf
在文件中增加如下信息:
/usr/local/ACE/lib
# ldconfig
测试ACE环境是否安装配置成功
编写一个简单的ACE程序,在这里我就用最简单的Hello World了,代码如下:
#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"HelloWorld.o" "HelloWorld.cpp"
链接:# g++ -I$ACE_ROOT -L/usr/local/ACE/lib -o"ACETest" ./HelloWorld.o -lACE -lrt –lpthread
注意:在链接的时候,必须要加-lACE –lrt -lpthread三个参数,否则会报错。
执行:# ./ACETest
成功执行的话,会打印出Hello World
评论暂时关闭