系统:CentOS 6.7 64位
ACE版本:6.2.0
假定压缩文件目录为:~/Software/ACE_wrappers(这个路径非常重要必须和下面匹配)
一:
解压下载好的ACE-6.2.0.tar.gz
# tar zxvf ACE-6.2.0.tar.gz
出现一个名为:ACE_wrappers的文件夹
二:定义环境变量:
修改/etc/profile 或者 /etc/bashrc
# vi /etc/profile(笔者用的是这个)
加入以下两行:
ACE_ROOT=~/Software/ACE_wrappers;export ACE_ROOT
LD_LIBRARY_PATH=$ACE_ROOT/ace;export LD_LIBRARY_PATH
source /etc/profile //生效环境变量
或者
vi ~/.bashrc(听说这个也行没试过)
加入以下两行:
ACE_ROOT=~/Software/ACE_wrappers export ACE_ROOT LD_LIBARY_PATH=$ACE_ROOT/ace:$LD_LIBARY_PATH export LD_LIBARY_PATH
source ~/.bashrc //生效环境变量
三、开始安装ACE
cd /Software/ACE_wrappers
vi ace/config.h
增加如下信息:
#define ACE_HAS_EVENT_POLL
#define ACE_HAS_PTHREAD_SCHEDPARAM
#define ACE_HAS_PTHREADS_STD
#include "ace/config-linux.h"
四、创建 platform_macros.GNU
~/Software/ACE_wrappers/include/makeinclude/platform_macros.GNU 写入
include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
五.可以在platform_macros.GNU里写入 INSTALL_PREFIX=/home/yourname/ace_install_dir/ 来制定输出目录.。
如果不指定 则默认生成至 $(ACE_ROOT)/lib目录下(笔者没有指定)。
六. 64位 linux 需要作个小修改:
vim $ACE_ROOT/include/makeinclude/platform_linux.GNU
找到如下几行
ifeq ($(buildbits),32)
FLAGS_C_CC += -m32
LDFLAGS += -m32
endif
ifeq ($(buildbits),64)
FLAGS_C_CC += -m64
LDFLAGS += -m64
endif
修改为
ifeq ($(buildbits),32)
FLAGS_C_CC += -m32
LDFLAGS += -m32
endif
ifeq ($(buildbits),64)
FLAGS_C_CC += -m64
FLAGS_C_CC += -fPIC
LDFLAGS += -m64
endif
七.编译
<带优化编译>在$ACE_ROOT目录下 make。大概十多分钟编译完成。
<不带优化编译>在$ACE_ROOT目录下 make optimize=0
八.创建软连接(笔者没有创建软连接)
cd /etc/ld.so.conf.d/
vi ace.conf
/home/hou/Software/ACE_wrappers/lib
sudo ldconfig
保存关闭,执行ldconfig 更新链接库。
九.执行测试程序(笔者没有用这个例子)
#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$ACE_ROOT -lACE -L$ACE_ROOT/lib -o acetest acetest.cpp
1
编译成功,运行:
./acetest
打印出:Hello World!
注意:g++ 命令后面到参数
-I$ACE_ROOT // 指定包含到头文件路径,此处是大写的 I ,include 的第一个字母到大写。
-lACE // 指定包含到库名称,此处是小写的 l,library 的第一个字母到小写。
-L$ACE_ROOT/lib // 指定依赖库到路径,此处是大写到L,library 的第一个字母到大写。
---------------------
十 另一个测试例子main.c(笔者用的是这个例子)
#include"ace/Log_Msg.h"
#include"ace/OS_main.h"
using namespace std;
int main()
{
ACE_DEBUG((LM_DEBUG,ACE_TEXT("Hello ACE")));
return 0;
}
编译并连接:
g++ -g -L ../../debug64 -o "../../debug64/main" Debug/main.o ../../debug64/libACE.so.6.2.0
这样就可以学习ACE了…………
---------------------
作者:谢谢考拉
来源:优快云
原文:https://blog.youkuaiyun.com/hou512504317/article/details/70224691
版权声明:本文为博主原创文章,转载请附上博文链接!