找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 11644|回复: 21

求助:Fedora9中安装ACE5.6.8出错。

[复制链接]
发表于 2009-3-24 12:30:51 | 显示全部楼层 |阅读模式
1.tar zxvf ACE-5.6.8.tar.gz ~/ace
2.配置config.h文件
    #include"config-linux.h"
    #define ACE_HAS_REACTOR_NOTIFICATION_QUEUE
3.生成platform_macros.h文件
4.  设置ACE_ROOT和LD_LIBRARY_PATH
      打开/etc/profile文件,添加以下内容
      ACE_ROOT=/home/work/research/ace/ACE_wrappers
      export ACE_ROOT
      LD_LIBRARY_PATH=$ACE_ROOT/ace:$ACE_ROOT/lib:/usr/lib:$LD_LIBRARY_PATH
      export LD_LIBRARY_PATH
5.生成build的文件夹
6.执行../configure
7.执行make

执行make后出现的错误如下:
g++ -W -Wall -Wpointer-arith -g -O2 -pipe -O3 -o .libs/SAXPrint SAXPrint-Print_Handler.o SAXPrint-SAXPrint_Handler.o SAXPrint-main.o  -pthread ../../../ACEXML/parser/parser/.libs/libACEXML_Parser.so /root/ace/ACE_wrappers/build/ACEXML/common/.libs/libACEXML.so ../../../ACEXML/common/.libs/libACEXML.so /root/ace/ACE_wrappers/build/ace/.libs/libACE.so ../../../ace/.libs/libACE.so -ldl -Wl,--rpath -Wl,/usr/local/lib
/root/ace/ACE_wrappers/build/ace/.libs/libACE.so: undefined reference to `aio_return'
/root/ace/ACE_wrappers/build/ace/.libs/libACE.so: undefined reference to `aio_read'
/root/ace/ACE_wrappers/build/ace/.libs/libACE.so: undefined reference to `aio_cancel'
/root/ace/ACE_wrappers/build/ace/.libs/libACE.so: undefined reference to `aio_error'
/root/ace/ACE_wrappers/build/ace/.libs/libACE.so: undefined reference to `aio_write'
/root/ace/ACE_wrappers/build/ace/.libs/libACE.so: undefined reference to `aio_suspend'
collect2: ld returned 1 exit status
make[3]: *** [SAXPrint] 殍 1
make[3]: Leaving directory `/root/ace/ACE_wrappers/build/ACEXML/examples/SAXPrint'
make[2]: *** [all-recursive] 殍 1
make[2]: Leaving directory `/root/ace/ACE_wrappers/build/ACEXML/examples'
make[1]: *** [all-recursive] 殍 1
make[1]: Leaving directory `/root/ace/ACE_wrappers/build/ACEXML'
make: *** [all-recursive] 殍 1
[root@localhost build]# cd /usr




请问各位,怎么才能引用和aio有关的lib?还是有其他问题?
发表于 2009-3-24 14:59:09 | 显示全部楼层
应该是没有配置安装AIO相关的模块吧? 异步IO处理。
 楼主| 发表于 2009-3-24 15:09:13 | 显示全部楼层

回复 #2 winston 的帖子

在/usr/include中有aio.h文件。
需要特别设置吗?
 楼主| 发表于 2009-3-24 15:12:03 | 显示全部楼层

回复 #2 winston 的帖子

唯有不设置config.h并且不生成platform_macros.GNU,直接在build目录下make,ACE才能make成功。
 楼主| 发表于 2009-3-24 17:08:58 | 显示全部楼层

回复 #2 winston 的帖子

是不是需要把AIO相关的库复制到/usr/local/lib中?
目前我的/usr/local/lib里面是空的。
 楼主| 发表于 2009-3-25 13:09:36 | 显示全部楼层

回复 #2 winston 的帖子

Fedora9的内核是2.6.25

在bits/posix_opt.h中有这样的描述
//We support asynchronous I/O
#define _POSIX_ASYNCHRONOUS_IO    200112L
#define _POSIX_ASYNC_IO                  1

是不是说明已经配置好了AIO?
发表于 2009-3-25 13:22:43 | 显示全部楼层
你配置一下library的路径试试看,应该是找不到库
 楼主| 发表于 2009-3-25 14:26:40 | 显示全部楼层

回复 #7 winston 的帖子

我做了如下设置:

LD_LIBRARY_PATH=$ACE_ROOT/aceACE_ROOT/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
  export LD_LIBRARY_PATH

还是出现同样的错误。

求救!Help~Help~
 楼主| 发表于 2009-3-25 14:28:12 | 显示全部楼层

回复 #7 winston 的帖子

另外,我在config.h中设置了
#define ACE_HAS_AIO_CALLS 0
之后,还是出现找不到'aio_return'等 错误.
 楼主| 发表于 2009-3-26 09:14:33 | 显示全部楼层
原帖由 winston 于 2009-3-25 13:22 发表
你配置一下library的路径试试看,应该是找不到库

LD_LIBRARY_PATH设置为$ACE_ROOT/lib:/usr/lib:/usr/local

并且我更新了libaio和libaio-devel两个程序包
在/usr/lib下能够找到libaio.so.1 libaio.so.1.0.0 libaio.so.1.0.1 libaio.a libaio.so
在/usr/include/下能能够找到aio.h

但错误还是没有被消除。


help~

Thanks!
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-12-22 16:32 , Processed in 0.021023 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表