引自ACE安装文档
Here's what you need to do to build ACE using GNU Make and ACE's traditional per-platform configuration method:
- Install GNU make 3.79.1 or greater on your system (available via
http
anonymousftp
fromftp.gnu.org
in thepub/gnu/make/
directory). You must use GNU make when using ACE's traditional per-platform configuration method or ACE won't compile. - Add an environment variable called ACE_ROOT that contains the name of the root of the directory where you keep the ACE wrapper source tree. The ACE recursive Makefile scheme needs this information. There are several ways to set the ACE_ROOT variable. For example:
TSCH/CSH:
setenv ACE_ROOT /home/cs/faculty/schmidt/ACE_wrappers
BASH or Bourne Shell:
ACE_ROOT=/home/cs/faculty/schmidt/ACE_wrappers; export ACE_ROOT
If you're building a number of versions of ACE, however, (e.g., for different OS platforms or for different releases of ACE) you might use the following approach (assuming TCSH/CSH):
setenv ACE_ROOT $cwd
- Create a configuration file,
$ACE_ROOT/ace/config.h
, that includes the appropriate platform/compiler-specific header configurations from the ACE source directory. For example:#include "ace/config-linux.h"
$ACE_ROOT/ace/README
file for a description of these macro settings. If you desire to add some site-specific or build-specific changes, you can add them to your config.h file; place them before the inclusion of the platform-specific header file.There are config files for most versions of UNIX. If there isn't a version of this file that matches your platform/compiler, you'll need to make one. Please send email to the ace-users list if you get it working so it can be added to the master ACE release.
- Create a build configuration file,
$ACE_ROOT/include/makeinclude/platform_macros.GNU
, that contains the appropriate platform/compiler-specific Makefile configurations, e.g.,include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
NOTE! There really is not a # character before 'include' in the platform_macros.GNU file. # is a comment character.
- Note that because ACE builds shared libraries, you'll need to set LD_LIBRARY_PATH (or equivalent for your platform) to the directory where binary version of the ACE library is built into. For example, you probably want to do something like the following:
% setenv LD_LIBRARY_PATH $ACE_ROOT/lib:$LD_LIBRARY_PATH
- When all this is done, hopefully all you'll need to do is type:
% make
$ACE_ROOT/ace
directory and runningmake
there to build just the ACE library. As a sanity check, you might also want to build and run the automated "one-button" tests in$ACE_ROOT/tests
. Finally, if you're also planning on building TAO, you should build the gperf perfect hash function generator application in$ACE_ROOT/apps/gperf
. - If you need to regenerate the
ace/Svc_Conf_y.cpp
file, you'll need to get GNU Bison. However, you should rarely, if ever, need to do this.