On 2006-09-26 17:06-0600 Abe Stephens wrote:
When I build object files for shared library targets cmake includes the position independent code flag (-fPIC). However when I build objects for static library targets the flag is omitted. I try to link the static lib to other objects in a shared library the linker chokes.
Could you clarify your goal here? Are you trying to link object files compiled without -fPIC into a shared library? That would never work; -fPIC is required for all objects in shared libraries. Are you creating both a shared library and a static library with the same source code? In that case you will have to compile the source code twice (once without and once with -fPIC). This can easily be arranged with CMake, although you will need two runs of cmake with different options to build two separate build trees (one static one shared). Are you trying to simply link a static library built by CMake with an external shared library? That is entirely possible (I have done that recently with CMake). For this case, static library builds do not require -fPIC on the object modules that are contained in the static library. Are you trying to link a static library build by CMake with a shared library built by CMake? I haven't tried that, but I assume it would work just as well as the link of static library built by CMake to an external library. In sum, I don't think there is any case where you have to explicitly specify -fPIC. CMake takes care of that for you. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); PLplot scientific plotting software package (plplot.org); the Yorick front-end to PLplot (yplot.sf.net); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ _______________________________________________ CMake mailing list [email protected] http://www.cmake.org/mailman/listinfo/cmake
