Wednesday, April 9, 2008

Back Up!

All data is back up. URLs should be the same as they were previously.

Sorry for any inconvenience!

Edit: Oops, some of my links were bad. This is fixed now.

9 comments:

akshay said...

Hi Jeremy,

I am akshay from India,i have been using factory_map to get the object of a class at the run time , but i am not been able to get access of the functions which are non static or non const ,
please suggest me any way to do so.

thank you in advance
Akshay

Jeremy Pack said...

You will have to be more specific.

Naturally, if you're using a factory, only those methods which are declared virtual in the base class are going to be callable across the shared library boundary. If you need more than this, I'd suggest using Boost.Reflection.

Anonymous said...

Hmmm I can't access http://redshoelace.dlinkddns.com:9080/boost/extension_reflection12Feb08.zip?
Still some probs?
regards, Oliver

Jeremy Pack said...

Oliver,

My ISP is having connectivity problems lately. I'd suggest downloading from the Subversion repository anyway - to get the latest build (which should work better than the build from February).

svn co http://svn.boost.org/svn/boost/sandbox sandbox

This will actually check out the whole sandbox - you can look at an earlier post for the actual location of reflection and extension.
Jeremy

Anonymous said...

Hi Jeremy,
I tried out your boost.extension library on Linux (gcc-4.2.4) but the simple word example did not work.
No classes are loaded.

ext::load_single_library(
fm,
"libHelloWorld.so",
"extension_export_word");

factory_list.size() == 0

regards,
Oliver

Jeremy Pack said...

Did you use bjam to build? If not, I'll need to see what commands you used to build so that I can try and reproduce it.

Anonymous said...

I used kdevelop instead bjam in order to create an shared library:

g++ -DHAVE_CONFIG_H -I. -I/home/kowalke/Projects/test_extension_lib/src -I.. -I/opt/boost/include/boost-1_35 -O0 -g3 -MT hello_world.lo -MD -MP -MF .deps/hello_world.Tpo -c /home/kowalke/Projects/test_extension_lib/src/hello_world.cpp -o hello_world.o >/dev/null 2>&1
mv -f .deps/hello_world.Tpo .deps/hello_world.Plo
/bin/sh ../libtool --tag=CXX --mode=link g++ -O0 -g3 -o libHelloWorld.la -rpath /usr/local/lib hello_world.lo
g++ -shared -nostdlib /usr/lib/gcc/i486-linux-gnu/4.2.4/../../../../lib/crti.o /usr/lib/gcc/i486-linux-gnu/4.2.4/crtbeginS.o .libs/hello_world.o -L/usr/lib/gcc/i486-linux-gnu/4.2.4 -L/usr/lib/gcc/i486-linux-gnu/4.2.4/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/i486-linux-gnu/4.2.4/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/i486-linux-gnu/4.2.4/crtendS.o /usr/lib/gcc/i486-linux-gnu/4.2.4/../../../../lib/crtn.o -Wl,-soname -Wl,libHelloWorld.so.0 -o .libs/libHelloWorld.so.0.0.0
(cd .libs && rm -f libHelloWorld.so.0 && ln -s libHelloWorld.so.0.0.0 libHelloWorld.so.0)
(cd .libs && rm -f libHelloWorld.so && ln -s libHelloWorld.so.0.0.0 libHelloWorld.so)
ar cru .libs/libHelloWorld.a hello_world.o
ranlib .libs/libHelloWorld.a
creating libHelloWorld.la
(cd .libs && rm -f libHelloWorld.la && ln -s ../libHelloWorld.la libHelloWorld.la)
make[2]: Nothing to be done for `all-am'.


thanks!
Oliver

Jeremy Pack said...

Feel free to send me an e-mail directly: rostovpack - at - yahoo.com.

I believe that you need to add the following flags to the linker on most Linux distributions:

-Wl,-rpath,'$ORIGIN'

Jeremy Pack said...

In addition to what I said in the previous post:

It may be worthwhile to build with bjam to see what command-line options it generates for the linker and compiler. I'll try to do that if I get the chance in the next couple of days.