请教大家一个问题,Red Hat FC4怎么编译ACE

8 views
Skip to first unread message

zengd...@gmail.com

unread,
Mar 3, 2006, 2:10:23 AM3/3/06
to 基于ACE和SpiderMonkey的SMS虚拟运营系统
请教大家一个问题,Red Hat
FC4怎么编译ACE,我试尽了各种方法都不成功,如果哪位有办法的话请高诉我,越详细越好.

candid Qiu

unread,
Mar 3, 2006, 2:21:31 AM3/3/06
to ACE...@googlegroups.com
我家的red hat版本太低,所以可能需要时间。
出现的问题最好能一一说明,不要一开始就说不行,马上要解决的方案。
如果能说明每个出现的问题,自己尝试过的方法,这样大家更好讨论。不然肯定有人说了,"我试过,没有问题呀!"
如:
red hat的版本:
gcc的版本:
编译出错的列表:
等等。。

(注:我回复并非想责怪发帖的人,而是借此说说我工作多年的经验。在公司工作难免要遇到新人,特别是毕业生,可能是在学校没有太多的实习经验所以一旦出现问题只想着要答案,可是忘了,其实解决过程才是最大的收获。我也是从学校出来的,自然也是如此,可惜前辈们讲清楚这个道理的不多,我倒是在被责怪中悟出来的。自然这里也没有任何责怪的意思。)

zengd...@gmail.com

unread,
Mar 3, 2006, 3:07:58 AM3/3/06
to 基于ACE和SpiderMonkey的SMS虚拟运营系统
谢谢 candid Qiu.
我在网络上找了2个星期了,并且熬了几个通宵去编译ACE,试了N次,都没有成功.
我实在是没有办法了,故而到这里来求助.

candid Qiu

unread,
Mar 3, 2006, 3:10:21 AM3/3/06
to ACE...@googlegroups.com
那把问题都列出来吧,我想大家都很有兴趣解决的。

zengd...@gmail.com

unread,
Mar 3, 2006, 3:24:36 AM3/3/06
to 基于ACE和SpiderMonkey的SMS虚拟运营系统
在Red Hat Linux FC4
中编译ACE-5.4.10或是其它版本的ACE都有这个问题,
1.. 解压
2.. 进入ACE_wrappers
3.. mkdir build
4.. cd build
5.. ../configure
6.. make
之后就有这个问题

make[3]: Entering directory
`/opt/ACE/ACE_wrappers/build/apps/gperf/tests'
../src/gperf -a -k1,4,$ ../../../../apps/gperf/tests/ada.gperf >
ada.cpp
/opt/ACE/ACE_wrappers/build/apps/gperf/src/.libs/lt-gperf: error while
loading shared libraries:
/opt/ACE/ACE_wrappers/build/ace/.libs/libACE.so.5: cannot restore
segment prot after reloc: Permission denied
make[3]: *** [ada-stamp] 错误 127
make[3]: Leaving directory
`/opt/ACE/ACE_wrappers/build/apps/gperf/tests'
make[2]: *** [all-recursive] 错误 1
make[2]: Leaving directory `/opt/ACE/ACE_wrappers/build/apps/gperf'
make[1]: *** [all-recursive] 错误 1
make[1]: Leaving directory `/opt/ACE/ACE_wrappers/build/apps'
make: *** [all-recursive] 错误 1


还有就是按照huihoo论坛里的
{{{Linux下的ACE安装全攻略}}}
http://www.huihoo.com/forum/viewthread.php?tid=5654
都没有成功,其它的问题也贴子里面的一样.

zengd...@gmail.com

unread,
Mar 3, 2006, 3:26:31 AM3/3/06
to 基于ACE和SpiderMonkey的SMS虚拟运营系统
最后找到了http://dist.bonsai.com/ken/ace_tao_rpm/
但是不晓得怎么安装.

zengd...@gmail.com

unread,
Mar 3, 2006, 3:27:56 AM3/3/06
to 基于ACE和SpiderMonkey的SMS虚拟运营系统

candid Qiu

unread,
Mar 3, 2006, 3:56:24 AM3/3/06
to ACE...@googlegroups.com
需要更改的文件:

Make symbolic links to the include/makeinclude/platform_linux.GNU and ace/config-linux.h as your platform_macros.GNU and config.h files, respectively.


cp include/makeinclude/platform_linux.GNU include/makeinclude/platform_macros.GNU

cp ace/config-linux.h ace/config.h

这个做了么?
还有设置环境变量:

Using the Traditional ACE/GNU Configuration
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 anonymous ftp from prep.ai.mit.edu in the pub/gnu/make/ directory). You must use GNU make 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 instance, in my .login file for TSCH/CSH I have the following entry:


      % setenv ACE_ROOT /home/cs/faculty/schmidt/ACE_wrappers
      
BTW, if you're running BASH or Bourne Shell you'll need to do the following:


      % 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 (again assuming TCSH/CSH):


      % setenv ACE_ROOT $cwd
      
Edit the $ACE_ROOT/ace/OS.h file to update things like default hostname and port numbers you'd like the programs in the $ACE_ROOT/{apps,tests} directories to use by default. Note, however that you can normally skip this step because the defaults are typically fine for most systems.

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-sunos5-sunc++- 4.x.h"

The platform/compiler-specific configuration file contains the #defines that are used throughout ACE to indicate which features your system supports. See the $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 me email if you get it working so I can add it 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_sunos5_sunc++.GNU

This file contains the compiler and Makefile directives that are platform/compiler-specific. If you'd like to add make options, you can add them before including the paltform-specific configuration.

Note that because ACE builds shared libraries, you'll need to set LD_LIBRARY_PATH to whereever you put the binary version of the ACE library. For example, you probably want to do something like the following


      % setenv LD_LIBRARY_PATH $ACE_ROOT/ace:$ACE_ROOT/lib:$LD_LIBRARY_PATH
      

When all this is done, hopefully all you'll need to do is type:


      % make
      
at the root of the ACE source tree. This will build the ACE library, tests, the examples, and the sample applications. Building the entire ACE release can take a long time and consume lots of disk space, however. Therefore, you might consider cd'ing into the $ACE_ROOT/ace/ directory and running make 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 Svc_Conf_y.cpp file, you'll need to get Berkeley YACC. However, you should rarely, if ever, need to do this.

zengd...@gmail.com

unread,
Mar 3, 2006, 4:12:59 AM3/3/06
to 基于ACE和SpiderMonkey的SMS虚拟运营系统
这上面的这段是应该来自ACE-INSTALL的说明文档.我试过了BASH环境下的,和huihoo论坛里的{{{Linux下的ACE安装全攻略}}}安装差不多.编译了几次都不行.

candid Qiu

unread,
Mar 3, 2006, 4:24:49 AM3/3/06
to ACE...@googlegroups.com
会不会是linux的版本太高了呢?
我以前用别的软件也试过这样的情况。
 
我回家试试,我家个linux版本还比较低,好像是7
 
这个问题最好曲志峰能给些建议,好像他用的就是linux下的ACE

candid Qiu

unread,
Mar 3, 2006, 4:26:01 AM3/3/06
to ACE...@googlegroups.com
如果是用solaris的话,请Eric Wu介绍一下安装的要点!
 

zengd...@gmail.com

unread,
Mar 3, 2006, 7:10:51 AM3/3/06
to 基于ACE和SpiderMonkey的SMS虚拟运营系统
我也觉得可能是,明天看看RED HAT 8或9可以不.
但最好还是在FC4平台!
先谢谢啦!!!!!!!!

zengd...@gmail.com

unread,
Mar 4, 2006, 9:58:05 AM3/4/06
to 基于ACE和SpiderMonkey的SMS虚拟运营系统
OK!我在REDHAT 8.0里面编译成功了.没有问题.
如果我迁移到FC4中到底该怎么改呢????????

邱戈川

unread,
Mar 5, 2006, 8:20:46 PM3/5/06
to 基于ACE和SpiderMonkey的SMS虚拟运营系统
如果可以,你试试将fc4中gcc, g++, gun
make等用到的编译、链接工具卸载,然后装上rad
hat8或9的相同的工具实试。
可能因为这些工具的版本太新的缘故。
Reply all
Reply to author
Forward
0 new messages