阅读提示:
本文已过时。
对于习惯了“三板斧”的 Linux 用户而言,解压 ACE 后发现的第一个问题一定是:居然没有熟悉的 configure!是的,ACE 没有使用 autoconf。
首先,我们需要设置 $ACE_ROOT
环境变量,把该环境变量指向你解压 ACE
后得到的最上层目录,如果你把 ACE
解压到了其它目录,请修改下面提到的路径。
接下来,我们进入 $ACE_ROOT/ace
目录,创建一个文本 config.h
,内容如下:
然后,我们进入 $ACE_ROOT/include/makeinclude
目录,创建一个文本文件
platform_macros.GNU
,内容如下:
然后回到 $ACE_ROOT 目录,执行 make
。
编译过程执行到中途的时候会出错,那是因为 ACE
库中的部分代码需要通过一个代码生成器来生成,而令人发指的一点是该代码生成器居然依赖
ACE 的库,而此时 ACE
的库却还没有安装。没关系,虽然整个 ACE
还没有编译完,但它依赖的 libACE.so
却已经准备好了。切换到 root
下把
libACE.so.5.4.8 (如果你安装的 ACE
源码库与我的版本不一致,这个数也可能是别的)
复制到 ldconfig 能找到的路径下,如 /usr/lib
或
/usr/local/lib
下,执行 ldconfig
刷新系统库列表,然后删除
$ACE_ROOT/apps/gperf/tests/cpp.cpp
,最后重新运行
make
,经过漫长地等待后,ACE 就编译好了。
为了方便使用,我们可以把 $ACE_ROOT/lib
下的内容复制到 /usr/lib
或
/usr/local/lib
下,可以使用滇狐编写的这段脚本复制共享库,命令行为:./install.sh /usr/local/lib
。