我正在尝试使用以下make命令编译我的gcc代码。
操作系统:Redhat,gcc - 4.1
但我得到的错误如下:
rmtrain @ lintrni130 $ / usr / local / bin / make all
[ 21%] Built target GCVCore
Linking CXX executable CFE
/usr/bin/ld: warning: libicui18n.so.36, needed by ../../Generic/icu/lib/libicuio.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libxalanMsg.so.110, needed by ../../Generic/Xalan/lib/libxalan-c.so, not found (try using -rpath or -rpath-link)
CMakeFiles/CFE.dir/trnuser1/rmtrain/DevelopmentEnv/Generic/ConvUI/GCVConvUISetting.o: In function `xercesc_2_6::XMLAttDefList::~XMLAttDefList()':
GCVConvUISetting.cpp:(.text._ZN11xercesc_2_613XMLAttDefListD0Ev[xercesc_2_6::XMLAttDefList::~XMLAttDefList()]+0x2f): undefined reference to `xercesc_2_6::XMemory::operator delete(void*)'
请帮助解决这个问题。
答案 0 :(得分:0)
警告意味着您链接的某些库依赖于其他共享库,并且在链接器的搜索路径中找不到这些库。链接器手册描述了它如何在docs for the -rpath-link
option
他们只是警告,所以没有导致你的链接失败。如果在运行时找不到那些必需的库,那将是一个问题,但在链接时不一定是个问题。
如果要使警告静音,则需要找出包含libicui18n.so.36
和libxalanMsg.so.110
的目录,并使用手册中描述的方法之一告诉链接器查看该目录。
最后一行是真正的问题,并表示您没有链接到定义该符号的库。您需要找出它是哪个库并使用-lfoo
链接到它,它可能类似于-lxerces
答案 1 :(得分:0)
我重新安装了icu 3.2而不是3.6。它工作正常。