billhu422 发表于 2009-3-24 12:30:51

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

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: *** 殍 1
make: Leaving directory `/root/ace/ACE_wrappers/build/ACEXML/examples/SAXPrint'
make: *** 殍 1
make: Leaving directory `/root/ace/ACE_wrappers/build/ACEXML/examples'
make: *** 殍 1
make: Leaving directory `/root/ace/ACE_wrappers/build/ACEXML'
make: *** 殍 1
# cd /usr




请问各位,怎么才能引用和aio有关的lib?还是有其他问题?

winston 发表于 2009-3-24 14:59:09

应该是没有配置安装AIO相关的模块吧? 异步IO处理。

billhu422 发表于 2009-3-24 15:09:13

回复 #2 winston 的帖子

在/usr/include中有aio.h文件。
需要特别设置吗?

billhu422 发表于 2009-3-24 15:12:03

回复 #2 winston 的帖子

唯有不设置config.h并且不生成platform_macros.GNU,直接在build目录下make,ACE才能make成功。

billhu422 发表于 2009-3-24 17:08:58

回复 #2 winston 的帖子

是不是需要把AIO相关的库复制到/usr/local/lib中?
目前我的/usr/local/lib里面是空的。

billhu422 发表于 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?

winston 发表于 2009-3-25 13:22:43

你配置一下library的路径试试看,应该是找不到库

billhu422 发表于 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~

billhu422 发表于 2009-3-25 14:28:12

回复 #7 winston 的帖子

另外,我在config.h中设置了
#define ACE_HAS_AIO_CALLS 0
之后,还是出现找不到'aio_return'等 错误.

billhu422 发表于 2009-3-26 09:14:33

原帖由 winston 于 2009-3-25 13:22 发表 http://www.acejoy.com/bbs/images/common/back.gif
你配置一下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!
页: [1] 2 3
查看完整版本: 求助:Fedora9中安装ACE5.6.8出错。