linux
下载ace 5.6
在根目录下建立一个文件夹
mkdir /ace
把下载的ace包移过去,解压得到一个文件夹ACE_wrappers
然后进入这个文件夹,看看里面的readme就可以晓得,linux下如何编译和安装
网上很多人说要建立一个config.h的文件,那是好多年前的老皇历了,readme里面没有说要建立这么个玩意,那就不建立。
直接进入主题,编译:
cd /ace/ACE_wrappers
mkdir build
cd build
../configure 我们使用默认的option
make
make install
过程很快,然后我们进入到/usr/local目录下,可以看到include里面有ace要用的头文件,lib里面有ace要用的库文件
linux的库文件 的搜索路径如下:
/usr/include
/usr/local/include
/usr/lib/gcc-lib/i386-linux/2.95.2/include
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g -3
/usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include
因此,我们不用设置ace的头文件了。
但是ace库文件不是linux的自带的默认的库文件,因此我们使用的时候要带上,而ace现在的库文件并不是系统的,先看一下默认的:
默认的动态库搜索路径/lib和/usr/lib
我们把ace所在的库文件路径添加进去:
一:
在/etc/bashrc中加入:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
重启
二:
打开/etc/ld.so.conf
本来内容是如下:
include ld.so.conf.d/*.conf
我们添加ace路径后变成如下
include ld.so.conf.d/*.conf
/usr/local/lib
保存退出!
然后执行 ldconfig
就可以了。
下面我们弄一个简单的ace程序:
/hello.cpp
#include " ace/Log_Msg.h "
int main ( int argc, char * argv[])
{
ACE_DEBUG((LM_DEBUG, " Hello, ACE! " ));
ACE_OS::exit( 1 );
return 0 ;
}
这么就不写makefile了,直接用g++编译就是了。
编译
g++ hello.cpp -o hello -lACE
运行:
./hello
结果:
[root@BTazuo ~]# ./hello
Hello, ACE!
一切ok,很顺利。
windows
解压ace在c盘,我的路径是:
C:/ACE_wrappers
然后设置系统路径:
添加系统的环境变量,path 的最前面加入C:/ACE_wrappers/lib
添加vc的库文件路径:
C:/ACE_wrappers/lib
添加vc的头文件也就是包含文件的路径:
C:/ACE_wrappers
在C:/ACE_wrappers/ace目录创建一个名为 config.h的文件。编辑文件并加入以下内容
#define ACE_HAS_STANDARD_CPP_LIBRARY 1
#include "ace/config-win32.h"
回到C:/ACE_wrappers目录,双击ACE_wrappers_vc8.sln开始编译几个要用的库文件,如果用的是debug模式得到的就是:
"ACE.dll","ACE.lib", "ACEd.dll","ACEd.lib"还有一些其他的。
再双击ACE_vc8.sln,开始全部的编译,过程很久。
最后在C:/ACE_wrappers/lib产生70多m的库文件。
开始写一个程序试试:
依旧是上面的程序:
#include " ace/Log_Msg.h "
int main ( int argc, char * argv[])
{
ACE_DEBUG((LM_DEBUG, " Hello, ACE! " ));
ACE_OS::exit( 1 );
return 0 ;
}
编译的时候有点麻烦,要手动的带库文件,如下设置:
“项目”--“hello属性”--“配置属性”--“链接器”--“输入”--“附加依赖项”,在里面输入“ACEd.lib”,确定。
接下来就是开始编译了,成功,运行打印“Hello, ACE!”。