in reply to Real Static Modules

I'm not sure (I'm not a C guru) but I think normally you can't statically link an .so library - you need a .o object to do that.

Replies are listed 'Best First'.
Re^2: Real Static Modules
by gent (Initiate) on Sep 17, 2007 at 22:50 UTC
    Yea, I'm sure a static library and a shared one don't mix. I should have really asked: "can you create a single .so from the library .so and the XS wrapper all together"?
      I think you've misunderstood me: you can't statically link an .so library to another .so library, but you can link one or more .o files into a single .so library.

      Does that make it clearer?

      In any case, if you really have to, you can always distribute the additional .so file with the perl/xs/so files.

      Other than pure curiousity, I don't really see a reason you'd want to do this.

        Ok, if I build an application that has a shared object that can be installed, that .so is made up of one or more .o files in some separate build directory. Is there a way to append the .o files to the Perl module .so, or does it all have to be done at once.

        The reason this needs to be done is I do not want to hard-code an LD_RUN_PATH or a LD_LIBRARY_PATH to run the apps. There is also the problem of different versions of the libraries. I want only my versions to work with my distributed Perl, so I will not be installing any external shared libraries with my apps.