[CMake] -fPIC .. (help w/ SET_TARGET_PROPERTIES)

Abe Stephens abe at sci.utah.edu
Wed Sep 27 00:24:55 EDT 2006


Alan W. Irwin wrote:
> 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?
Hopefully ;-)
> 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.
I think this is closest to what I am trying to do.
> In sum, I don't think there is any case where you have to explicitly 
> specify
> -fPIC. CMake takes care of that for you.
I understand that in general static libs don't need to be compiled with 
-fPIC since they're supposed to be linked with executables. In my case 
they will eventually linked when I build a certain shared library. It 
might make better sense to just package this code as a shared library, 
but for the moment if I could figure out how SET_TARGET_PROPERTIES I 
think I'd be in good shape.

ADD_LIBRARY(MyStatic STATIC ... )
SET_TARGET_PROPERTIES( MyStatic PROPERTIES COMPILE_FLAGS -fPIC)

Thanks--

Abe




More information about the CMake mailing list