Hello:

 

log4cxx is compiled and installed in a linux machine.

The shared library files (liblog4cxx.a, liblog4cxx.la, liblog4cxx.so,
liblog4cxx.so.9.0.0) are installed in the directory
"home/corona/HEAP/BUILD/lib".

 

The shared library, "libStatusReporting.so" uses "liblog4xcc".

------------------------------------------------------------------------
-----------------

The command line for linking "libStatusReporting.so"  is shown below

 

g++ -Wl,--rpath,/home/corona/HEAP/BUILD/lib
-Wl,-rpath,/usr/local/Trolltech/Qt-4.4.3/lib -shared
-Wl,-soname,libStatusReporting.so.1 -o libStatusReporting.so.1.0.0
debug/HApplicationInfo.o debug/HBaseException.o debug/HCallStackInfo.o
debug/HCInterface.o debug/HDivideByZeroException.o
debug/HEventInfoHandler.o debug/HExceptionAttribute.o
debug/HExternStatusLogging.o debug/HGUI.o debug/HInfoVersion.o
debug/HLogFilter.o debug/HLogReport.o debug/HLogRouter.o
debug/HMessageBox.o debug/HMessageRouter.o debug/HNullException.o
debug/HProcessInfo.o debug/HStatusBinder.o
debug/HStatusCodes_StatusLogger.o debug/HStatusCollector.o
debug/HStatusInfoManager.o debug/HStatuslogger.o debug/HStatusLoggerC.o
debug/HStatusTranslator.o debug/HUserFriendlyMessage.o
debug/HUserFriendlyMessageC.o debug/moc_HMessageBox.o
debug/qrc_Resources.o   -L/usr/local/Trolltech/Qt-4.4.3/lib
-L/usr/X11R6/lib -L./../../../lib -L. -L/usr/local/lib -llog4cxx -lQtSql
-L/usr/local/Trolltech/Qt-4.4.3/lib -pthread -pthread -lQtXml -pthread
-pthread -lQtOpenGL -L/usr/X11R6/lib -pthread -pthread -pthread -pthread
-pthread -pthread -pthread -pthread -lQtGui -pthread -lpng -lSM -lICE
-pthread -pthread -lXi -lXrender -lXrandr -lfreetype -lfontconfig -lXext
-lX11 -lQtNetwork -pthread -pthread -lQtCore -lz -lm -pthread
-lgthread-2.0 -lglib-2.0 -lrt -ldl -lGLU -lGL -lpthread

ln -s libStatusReporting.so.1.0.0 libStatusReporting.so

ln -s libStatusReporting.so.1.0.0 libStatusReporting.so.1

ln -s libStatusReporting.so.1.0.0 libStatusReporting.so.1.0

rm -f Debug/libStatusReporting.so.1.0.0

rm -f Debug/libStatusReporting.so

rm -f Debug/libStatusReporting.so.1

rm -f Debug/libStatusReporting.so.1.0

mv -f libStatusReporting.so.1.0.0 libStatusReporting.so
libStatusReporting.so.1 libStatusReporting.so.1.0 Debug/

 

The "ldd" output for "libStatusReporting.so" is below. (It states
liblog4cxx.so.9 is linked )

 

        liblog4cxx.so.9 => /home/corona/HEAP/BUILD/lib/liblog4cxx.so.9
(0x00e49000)

        libQtSql.so.4 => /usr/local/Trolltech/Qt-4.4.3/lib/libQtSql.so.4
(0x00c70000)

        libQtXml.so.4 => /usr/local/Trolltech/Qt-4.4.3/lib/libQtXml.so.4
(0x0034c000)

        libQtOpenGL.so.4 =>
/usr/local/Trolltech/Qt-4.4.3/lib/libQtOpenGL.so.4 (0x00460000)

        libQtGui.so.4 => /usr/local/Trolltech/Qt-4.4.3/lib/libQtGui.so.4
(0x00f3c000)

        libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00111000)

        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x00135000)

        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x0021d000)

        libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x005d4000)

        libXrender.so.1 => /usr/X11R6/lib/libXrender.so.1 (0x0013e000)

        libXrandr.so.2 => /usr/X11R6/lib/libXrandr.so.2 (0x0025a000)

        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00146000)

        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00be7000)

        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x00a00000)

        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x0025d000)

        libQtNetwork.so.4 =>
/usr/local/Trolltech/Qt-4.4.3/lib/libQtNetwork.so.4 (0x005dc000)

        libQtCore.so.4 =>
/usr/local/Trolltech/Qt-4.4.3/lib/libQtCore.so.4 (0x006f5000)

        libz.so.1 => /usr/lib/libz.so.1 (0x00b64000)

        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0x001b1000)

        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x003ca000)

        librt.so.1 => /lib/tls/librt.so.1 (0x001b5000)

        libdl.so.2 => /lib/libdl.so.2 (0x001c9000)

        libGLU.so.1 => /usr/X11R6/lib/libGLU.so.1 (0x004df000)

        libGL.so.1 => /usr/X11R6/lib/libGL.so.1 (0x00556000)

        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x00cec000)

        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00cfe000)

        libm.so.6 => /lib/tls/libm.so.6 (0x00b35000)

        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x001cd000)

        libc.so.6 => /lib/tls/libc.so.6 (0x06a21000)

        libxml2.so.2 => /usr/lib/libxml2.so.2 (0x0690e000)

        libboost_regex.so.1 => /usr/lib/libboost_regex.so.1 (0x0093a000)

        libexpat.so.0 => /usr/lib/libexpat.so.0 (0x001d7000)

        /lib/ld-linux.so.2 (0x00ad5000)

        libXxf86vm.so.1 => /usr/X11R6/lib/libXxf86vm.so.1 (0x001f6000)

 

Now I try to build the test client for "libStatusReporting.so"; it's an
executable that uses "libStatusReporting.so". I get link time errors
stating that some methods in "liblog4xcc" have undefined references from
"libStatusReporting.so".

------------------------------------------------------------------------
------

The command line for linking the test client executable. I have checked
and rechecked the path for the libraries; it's a relative path here:
"-L./../../lib" which is the same as "home/corona/HEAP/BUILD/lib". So, I
believe, library path is not the issue.

 

g++ -Wl,-rpath,/usr/local/Trolltech/Qt-4.4.3/lib -o
debug/Status_Reporting_Driver_GUI debug/main.o
debug/status_reporting_driver_gui.o
debug/moc_status_reporting_driver_gui.o debug/qrc_Resources.o
-L/usr/local/Trolltech/Qt-4.4.3/lib -L./../../lib -lStatusReporting
-lQtSql -L/usr/local/Trolltech/Qt-4.4.3/lib -pthread -pthread -lQtXml
-pthread -pthread -lQtGui -L/usr/X11R6/lib -pthread -lpng -lSM -lICE
-pthread -pthread -lXi -lXrender -lXrandr -lfreetype -lfontconfig -lXext
-lX11 -lQtNetwork -pthread -pthread -lQtCore -lz -lm -pthread
-lgthread-2.0 -lglib-2.0 -lrt -ldl -lpthread

./../../lib/libStatusReporting.so: undefined reference to
`log4cxx::Logger::info(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&)'

./../../lib/libStatusReporting.so: undefined reference to
`log4cxx::File::exists(log4cxx::helpers::Pool&) const'

./../../lib/libStatusReporting.so: undefined reference to
`log4cxx::File::File(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&)'

./../../lib/libStatusReporting.so: undefined reference to
`log4cxx::helpers::Pool::~Pool()'

./../../lib/libStatusReporting.so: undefined reference to
`log4cxx::helpers::Pool::Pool()'

./../../lib/libStatusReporting.so: undefined reference to
`log4cxx::PropertyConfigurator::configure(log4cxx::File const&)'

./../../lib/libStatusReporting.so: undefined reference to
`log4cxx::File::~File()'

./../../lib/libStatusReporting.so: undefined reference to
`log4cxx::helpers::ObjectPtrBase::exchange(void volatile**, void*)'

collect2: ld returned 1 exit status

make: *** [debug/Status_Reporting_Driver_GUI] Error 1

 

Any idea why these error were not encountered while linking
"libStatusReporting.so" in the first place?

 

Is there something incorrect that I might be doing in the build process
or is it that log4cxx was not build properly?

If necessary, I could also post the "nm" (symbol table details) output
for "liblog4cxx".

 

Thanks & Regards,

Saswata Goswami

 

 

 

Reply via email to