|
Boost Users : |
Subject: [Boost-users] strange linkage problem with boost_date_time 1.52 (x86_64-linux-gnu/gcc version 4.7.2)
From: mypop_at_[hidden]
Date: 2012-11-28 07:50:48
Hi erveryone,
i have a little problem linking against my newly installed: boost_date_time library.
I even don't know if this is the right place for this question because everything
works fine so far in the past.
1. I never had problems compiling and linking this sources before (on 3 other systems).
2. The project also contains some other directories with some kind of commandline tools.
  These tools also link against the regex and date_time libraries without any problems.
Here is the part where the libs are defined in my Makefile.am
libmodwscmi_la_CXXFLAGS = $(INCLUDES) $(PROJECT_INCLUDES) $(APR_CFLAGS)
libmodwscmi_la_LDFLAGSÂ = $(LDADD) $(BOOST_LDFLAGS) $(LIB_BOOST_REGEX) $(LIB_BOOST_DATETIME) `$(APR1CONFIG) --link-ld --libs`
libmodwscmi_la_LIBADDÂ Â = $(top_builddir)/utils/mysqlpp/libmysqlpp.la $(top_builddir)/utils/jwsmtp/libjwsmtp.la
After compiling is complete the linker gets called by this command:
g++ -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.7/crtbeginS.o .libs/libmodwscmi_la-mod_wscmi.o .libs/libmodwscmi_la-mod_gsoap.o .libs/libmodwscmi_la-mod_utils.o .libs/libmodwscmi_la-mod_mysql.o .libs/libmodwscmi_la-md5.o .libs/libmodwscmi_la-regEx.o .libs/libmodwscmi_la-utils.o .libs/libmodwscmi_la-exception.o .libs/libmodwscmi_la-dateTime.o .libs/libmodwscmi_la-validator.o .libs/libmodwscmi_la-mysqlPool.o .libs/libmodwscmi_la-mysqlCons.o .libs/libmodwscmi_la-mysqlQueries.o .libs/libmodwscmi_la-sqlite3.o  -Wl,-rpath -Wl,/var/www/projects/mod_wscmi-1.0/utils/mysqlpp/.libs -Wl,-rpath -Wl,/var/www/projects/mod_wscmi-1.0/utils/jwsmtp/.libs -L/usr/local/lib -lboost_date_time -lboost_regex -L/usr/lib /usr/lib/libapr-1.so -L/usr/local/mysql/lib ../utils/mysqlpp/.libs/libmysqlpp.so ../utils/jwsmtp/.libs/libjwsmtp.so -L/usr/lib/gcc/x86_64-linux-gnu/4.7 -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.7/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.7/../../../x86_64-linux-gnu/crtn.o -pthread -O3 -Wl,-R/usr/local/lib  -pthread -Wl,-soname -Wl,libmodwscmi.so.0 -o .libs/libmodwscmi.so.0.0.0
As you can see above, both libraries are present: -lboost_date_time -lboost_regex. They also can be found on the
harddrive (in /use/local/lib):
...
-rw-r--r-- 1 root 136876 Nov 20 09:19 libboost_date_time.a
lrwxrwxrwx 1 root     28 Nov 20 09:18 libboost_date_time.so -> libboost_date_time.so.1.52.0
-rwxr-xr-x 1 root  94337 Nov 20 09:18 libboost_date_time.so.1.52.0
...
-rw-r--r-- 1 root 2619610 Nov 20 09:19 libboost_regex.a
lrwxrwxrwx 1 root     24 Nov 20 09:18 libboost_regex.so -> libboost_regex.so.1.52.0
-rwxr-xr-x 1 root 1251576 Nov 20 09:18 libboost_regex.so.1.52.0
...
The complete build runs fine! There are no errors or warnings but the fianlly library is
unusable because: boost_date_time is not present. Ldd shows up something like this:
ldd .libs/libmodwscmi.so.0.0.0
       linux-vdso.so.1 => (0x00007fff17da4000)
       libboost_regex.so.1.52.0 => /usr/local/lib/libboost_regex.so.1.52.0 (0x00007ff289006000)
       libapr-1.so.0 => /usr/lib/libapr-1.so.0 (0x00007ff288db5000)
       libmysqlpp.so.0 => /var/www/projects/mod_wscmi-1.0/utils/mysqlpp/.libs/libmysqlpp.so.0 (0x00007ff288b35000)
       libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ff288832000)
       libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff288472000)
       libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff28825c000)
       libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff28803f000)
       libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007ff287e39000)
       libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff287c35000)
       libmysqlclient.so.18 => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18 (0x00007ff2876f1000)
       libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff2873f4000)
       /lib64/ld-linux-x86-64.so.2 (0x00007ff2895e9000)
       libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff2871dd000)
Only libboost_regex.so.1.52.0 was linked in and i have absolutly no idea why: libboost_date_time
does not show up.
So maybe someone of the list can give me an adivse of what's is going on here.
Thanks and greetings
 Michael
Â
Â
--- E-Mail ist da wo du bist! Jetzt mit freenetMail ganz bequem auch unterwegs E-Mails verschicken. Am besten gleich informieren unter http://mail.freenet.de/mobile-email/index.html
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net