linking boost in a shared library using -fPIC
hi. i'm building a shared library under gcc 4.1.1 which links some boost 1.33.1 libraries. a predecessor added the -fPIC switch to the Jamfiles of boost 'thread', 'date_time' and 'regex', and i have had no problems linking them. i've added the boost 'filesystem' library to the project and similarly patched the Jamfile... . . . lib boost_filesystem : ../src/$(SOURCES).cpp : # build requirements <define>BOOST_FILESYSTEM_STATIC_LINK <include>$(BOOST_ROOT) <sysinclude>$(BOOST_ROOT) <no-warn>exception.cpp <no-warn>operations_posix_windows.cpp #******************** <gcc><*><cxxflags>"-fPIC" #******************** # common-variant-tag ensures that the library will # be named according to the rules used by the install # and auto-link features: common-variant-tag : debug release # build variants ; . . . ... and recompiled boost. but i still get the following linker error. ------------------------------------------------------------- gcc-Link-action bin/blablabla/libinterpreter.so/gcc/debug/shared-linkable-true/threading-multi/libinterpreter.so /usr/bin/ld: /home/jono/lib/boost/bin_linux/debug/libboost_filesystem.a(operations_posix_windows.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC /home/jono/lib/boost/bin_linux/debug/libboost_filesystem.a: could not read symbols: Bad value ------------------------------------------------------------- can anyone spot my deliberate mistake? cheers Jono
participants (1)
-
jono