seesunny 发表于 2009-9-13 10:40:28

紧急求助 ACE 在solaris 10 上编译安装问题

按照ACE的安装说明,下载ACE-5.5.5.tar 按照文档进行安装
执行make的时候出现下面的错误,
Making all in .
/bin/bash ../libtool --tag=CXX --mode=link g++   -W -Wall -Wpointer-arith-g -O2 -pipe   -o Sendfile_TestSendfile_Test-Main.oSendfile_Test-Sendfile_Test.o libTest_Output.la../ace/libACE.la -lrt -lgen -lnsl -lsocket
g++ -W -Wall -Wpointer-arith -g -O2 -pipe -o .libs/Sendfile_Test Sendfile_Test-Main.o Sendfile_Test-Sendfile_Test.o./.libs/libTest_Output.a -L/usr/sfw/lib -lgcc_s -lm ../ace/.libs/libACE.so /usr/sfw/lib/libstdc++.so -lrt -lgen -lnsl -lsocket -Wl,-R -Wl,/usr/local/lib -Wl,-R -Wl,/usr/sfw/lib
ld: warning: file /usr/sfw/lib/libstdc++.so: attempted multiple inclusion of file
Undefined                     first referenced
symbol                           in file
sendfile                            Sendfile_Test-Sendfile_Test.o
ld: fatal: Symbol referencing errors. No output written to .libs/Sendfile_Test
collect2: ld returned 1 exit status
*** Error code 1
make: Fatal error: Command failed for target `Sendfile_Test'
Current working directory /bisgl11/bisgl/ACE/ACE_wrappers/build/tests
*** Error code 1
The following command caused the error:
failcom='exit 1'; \
for f in x $MAKEFLAGS; do \
case $f in \
    *=* | --[!k]*);; \
    *k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
list='.SSL'; for subdir in $list; do \
echo "Making $target in $subdir"; \
if test "$subdir" = "."; then \
    dot_seen=yes; \
    local_target="$target-am"; \
else \
    local_target="$target"; \
fi; \
(cd $subdir && make$local_target) \
|| eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
make"$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'
Current working directory /bisgl11/bisgl/ACE/ACE_wrappers/build/tests
*** Error code 1
make: Fatal error: Command failed for target `all'
Current working directory /bisgl11/bisgl/ACE/ACE_wrappers/build/tests
*** Error code 1
The following command caused the error:
failcom='exit 1'; \
for f in x $MAKEFLAGS; do \
case $f in \
    *=* | --[!k]*);; \
    *k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \
target=`echo all-recursive | sed s/-recursive//`; \
list='ace ACEXML ASNMP apps bin netsvcs examplesperformance-tests tests protocols websvcs Kokyu'; for subdir in $list; do \
echo "Making $target in $subdir"; \
if test "$subdir" = "."; then \
    dot_seen=yes; \
    local_target="$target-am"; \
else \
    local_target="$target"; \
fi; \
(cd $subdir && make$local_target) \
|| eval $failcom; \
done; \
if test "$dot_seen" = "no"; then \
make"$target-am" || exit 1; \
fi; test -z "$fail"
make: Fatal error: Command failed for target `all-recursive'

请教各位前辈如何解决这个问题呀。:'(

[ 本帖最后由 seesunny 于 2009-9-13 11:32 编辑 ]

winston 发表于 2009-9-13 20:50:01

像是版本兼容的问题,下载一个最新版本试试。你这个是旧版本。

seesunny 发表于 2009-9-14 13:36:06

ACE-5.5.tar.gz make 没有问题
但是执行make install 出现问题
ACE-5.6.tar.gz make 出现上面问题
ACE-5.7.tar.gz make 出现上面问题
请版主大侠
给指点迷津

modern 发表于 2009-9-14 14:03:13

test相关的目录可以不编译吧,编译ace动态库,用不到这些。

winston 发表于 2009-9-14 21:51:07

make 成功就ok,make install实际是复制文件和设置环境,你检查一下里面的代码是不是有兼容性问题吧。

seesunny 发表于 2009-9-15 13:57:34

谢谢两位

下载了ACE-5.5 tar.gz make 正常,make install 也正常(不正常的原因是对应目录没有权限),
可编译完成后发现是32位的,
solaris 10 的系统 isainfo -b =64 isainfo -v 支持64,和32位,
可是当前是64位,我连接时发现ACE 是32位的,
请问如何编译ACE 为64位的呢,看ACE的Install.html没有发现相关的说明。请各位前辈们继续帮忙谢谢
页: [1]
查看完整版本: 紧急求助 ACE 在solaris 10 上编译安装问题