找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4338|回复: 4

ACE-TAO编译,急!!

[复制链接]
发表于 2009-6-3 13:40:10 | 显示全部楼层 |阅读模式
各位大虾请教个ace——tao的编译问题。
我在ibm的aix5.3服务器上用gcc-g++4.2.4编译ace,在编译到TAO/TAO_IDL时,提示失败,失败信息如下:
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
ld: 0711-317 ERROR: Undefined symbol: .__sync_fetch_and_add_4

下面是make时的语句:
/bin/sh ../libtool --tag=CXX --mode=link g++   -mcpu=common -W -Wall -Wpointer-arith  -g -O2
-pthread -lstdc++   -o tao_idl  tao_idl-drv_args.o  tao_idl-drv_preproc.o tao_idl-tao_idl.o libTAO_
IDL_BE.la  libTAO_IDL_FE.la  ../../ace/libACE.la
g++ -mcpu=common -W -Wall -Wpointer-arith -g -O2 -o .libs/tao_idl tao_idl-drv_args.o tao_idl-drv_pre
proc.o tao_idl-tao_idl.o  -pthread /opt/pware/lib/libstdc++.a -L/gcc/4.2.4/powerpc-ibm-aix5.3.0.0/li
bstdc++-v3/src -L/gcc/4.2.4/powerpc-ibm-aix5.3.0.0/libstdc++-v3/src/.libs -L/gcc/4.2.4/./gcc -L/opt/
pware/lib -lm -lc ./.libs/libTAO_IDL_BE.a ./.libs/libTAO_IDL_FE.a -L../../ace/.libs -lACE -lxti -Wl,
-blibpath:/usr/local/lib:/opt/pware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4/pthread:/opt/pware/lib/gcc/
powerpc-ibm-aix5.3.0.0/4.2.4/../../../pthread:/opt/pware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4:/opt/p
ware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4/../../..:/usr/lib:/lib

请帮忙看看,解决一下,谢谢,十分感谢。24小时在线等!!!!!!!!!!
发表于 2009-6-3 13:51:39 | 显示全部楼层
编译中符号找不到的错误很常见。
我觉得你可以grep 查一下fetch_and_add 类似的符号在什么文件出现,然后加入编译试试。
 楼主| 发表于 2009-6-3 13:57:10 | 显示全部楼层

回复 #2 winston 的帖子

您好,我刚刚找到sync_fetch_and_add_4所在的库,在TAO/TAO_IDL/.libs目录下的libTAO_IDL_BE.a
libTAO_IDL_FE.a库中包含sync_fetch_and_add_4,但是在make中已经包含打了该两个库
/bin/sh ../libtool --tag=CXX --mode=link g++   -mcpu=common -W -Wall -Wpointer-arith  -g -O2
-pthread -lstdc++   -o tao_idl  tao_idl-drv_args.o  tao_idl-drv_preproc.o tao_idl-tao_idl.o libTAO_
IDL_BE.la  libTAO_IDL_FE.la  ../../ace/libACE.la
g++ -mcpu=common -W -Wall -Wpointer-arith -g -O2 -o .libs/tao_idl tao_idl-drv_args.o tao_idl-drv_pre
proc.o tao_idl-tao_idl.o  -pthread /opt/pware/lib/libstdc++.a -L/gcc/4.2.4/powerpc-ibm-aix5.3.0.0/li
bstdc++-v3/src -L/gcc/4.2.4/powerpc-ibm-aix5.3.0.0/libstdc++-v3/src/.libs -L/gcc/4.2.4/./gcc -L/opt/
pware/lib -lm -lc ./.libs/libTAO_IDL_BE.a ./.libs/libTAO_IDL_FE.a -L../../ace/.libs -lACE -lxti -Wl,
-blibpath:/usr/local/lib:/opt/pware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4/pthread:/opt/pware/lib/gcc/
powerpc-ibm-aix5.3.0.0/4.2.4/../../../pthread:/opt/pware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4:/opt/p
ware/lib/gcc/powerpc-ibm-aix5.3.0.0/4.2.4/../../..:/usr/lib:/lib
发表于 2009-6-3 15:43:51 | 显示全部楼层
也许跟库的排列顺序相关,查一下什么代码引用了sync_fetch_and_add_4,然后看看此代码编译中的顺序与libTAO_IDL_BE.a这个库的排列关系。或者干脆在最后面重复加上这个库试试看。
我不用TAO,上面只是经验推测而已。
 楼主| 发表于 2009-6-3 16:31:13 | 显示全部楼层

回复 #4 winston 的帖子

查找sync_fetch_and_add_4,发现在libTAO_IDL_BE.a
libTAO_IDL_FE.a两个库中,make中已经添加了这两个库,两个库的顺序都顺序都反复测试过,还是提示
ld: 0711-317 ERROR: Undefined symbol: .__sync_fetch_and_add_4
然后查找.__sync_fetch_and_add_4,在libTAO_IDL_BE.la   libTAO_IDL_FE.la中,在make中也有如:
/bin/sh ../libtool --tag=CXX --mode=link g++   -mcpu=common -W -Wall -Wpointer-arith  -g -O2 \
-pthread -lstdc++  -o tao_idl  tao_idl-drv_args.o  tao_idl-drv_preproc.o tao_idl-tao_idl.o \
llibTAO_IDL_BE.la  libTAO_IDL_FE.la  ../../ace/libACE.la
顺序也反复测试过,还是不行。
请专家帮忙解决,谢谢了!!!!!!!!!!!!!!!!!!!11
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-11-23 03:26 , Processed in 0.015399 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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