Mailinglist Archive: opensuse-packaging (46 mails)

< Previous Next >
Re: [opensuse-packaging] undefined reference at linking stage
  • From: Robert Schweikert <rjschwei@xxxxxxxx>
  • Date: Tue, 05 Feb 2013 18:27:44 -0500
  • Message-id: <51119570.70205@suse.com>


On 02/05/2013 04:47 PM, Ilya Chernykh wrote:

I have a problem with building kdewebdev3 (quanta) for Factory.

The error is

======

[ 685s] /bin/sh ../../libtool --silent --tag=CXX --mode=link g++
-Wno-long-long -Wundef -ansi -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -Wcast-align
-Wchar-subscripts -Wall -W -Wpointer-arith -DNDEBUG -DNO_DEBUG -O2
-fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2
-fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -fpermissive
-Wformat-security -Wmissing-format-attribute -Wno-non-virtual-dtor
-fno-exceptions -fno-check-new -fno-common -DENABLE_CVSSERVICE -module
-avoid-version -module -no-undefined -Wl,--no-undefined
-Wl,--allow-shlib-undefined -lkatepartinterfaces -L/opt/kde3/lib
-L/usr/lib/qt3/lib -Wl,--as-needed -Wl,--enable-new-dtags
-Wl,-Bsymbolic-functions -lxml2 -o libkxsldbgpart.la -rpath /opt/kde3/lib/kde3
dummy.lo libkxsldbgcommon.la -lkparts -lxml2
[ 693s] ./.libs/libkxsldbgcommon.a(xsldbg.o): In function
`xsldbgLoadXmlTemporary':
[ 693s]
/home/abuild/rpmbuild/BUILD/kdewebdev-3.5.10/kxsldbg/kxsldbgpart/libxsldbg/xsldbg.cpp:1030:
undefined reference to `docbParseFile'
[ 693s] ./.libs/libkxsldbgcommon.a(xsldbg.o): In function `xsldbgLoadXmlData':
[ 693s]
/home/abuild/rpmbuild/BUILD/kdewebdev-3.5.10/kxsldbg/kxsldbgpart/libxsldbg/xsldbg.cpp:980:
undefined reference to `docbParseFile'
[ 693s] collect2: error: ld returned 1 exit status

======

I wonder why it is compiling well, but the linker reports an error.

Because during compile time the compiler sees a declaration for "docbParseFile" and can figure out what call to generate. However, during linking you do not have the binary artifact on the link line that provides the implementation for "docbParseFile". Therefore, the linker cannot stitch things together properly and creates an error.

You'll have to figure out which library or object provides the implementation for "docbParseFile" and then add it to your link line.

HTH,
Robert

--
Robert Schweikert MAY THE SOURCE BE WITH YOU
SUSE-IBM Software Integration Center LINUX
Tech Lead
rjschwei@xxxxxxxx
rschweik@xxxxxxxxxx
781-464-8147
--
To unsubscribe, e-mail: opensuse-packaging+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-packaging+owner@xxxxxxxxxxxx

< Previous Next >
References