[CMake] statically linked executables
Daniel Rueckert
dr at doc.ic.ac.uk
Wed Nov 28 17:52:12 EST 2007
Alan W. Irwin wrote:
> On 2007-11-28 21:57-0000 Daniel Rueckert wrote:
>
>> Bill Hoffman wrote:
>>> Daniel Rueckert wrote:
>>>> Hi,
>>>>
>>>> I am trying to build some statically linked executables on a linux
>>>> box. I have added the "-static" option to the linker flags and
>>>> specified
>>>> static link libraries but for some reason cmake still adds the option
>>>> "-Wl,-Bdynamic" flag to the linker options. Is there any way around
>>>> this?
>>>>
>>>> Thanks, Daniel
>>>
>>> Sounds like you might have some explicit shared libraries linked into
>>> you project with full paths.
>>>
>>> -Bill
>>>
>>
>> Not explicitly. The shared libraries are -lSM, -lICE (part of X11 I
>> believe)
>> and -lm. I have not found any way how to change them into static
>> libraries
>> in cmake. I have attached the linking command generated by cmake:
>>
>> /usr/bin/c++ -fno-const-strings -ffloat-store -Wall -O2 -fPIC
>> -static "CMakeFiles/binarize.dir/binarize.o" -o ../bin/binarize
>> -rdynamic -L/vol/vipdata/project/linux-ubuntu-static/lib
>> -L/vol/vipdata/packages/Mesa-6.5/lib -Wl,-Bstatic -lz -lfltk_images
>> -lfltk -lfltk_gl -lfltk_forms -Wl,-Bdynamic -lSM -lICE -Wl,-Bstatic
>> -lX11 -lXext -Wl,-Bdynamic -lm -Wl,-Bstatic -lglut -lXmu -lXi -lGLU
>> -lGL -Wl,-Bdynamic -lSM -lICE -Wl,-Bstatic -lX11 -lXext -lznz
>> -lniftiio -lsegmentation++ -lregistration++ -ltransformation++
>> -lcontrib++ -limage++ -lgeometry++ -lcommon++ -lrecipes -lcontrib++
>> -limage++ -lgeometry++ -lcommon++ -lrecipes -ltransformation++
>> -lregistration++ -lsegmentation++ -lniftiio -lznz -lz -lfltk_images
>> -lfltk -lfltk_gl -lfltk_forms -Wl,-Bdynamic -lSM -lICE -Wl,-Bstatic
>> -lX11 -lXext -Wl,-Bdynamic -lm -Wl,-Bstatic -lglut -lXmu -lXi -lGLU
>> -lGL -Wl,-Bdynamic -lSM -lICE -Wl,-Bstatic -lX11 -lXext -Wl,-Bdynamic
>> -Wl,-rpath,/vol/vipdata/project/linux-ubuntu-static/lib:/vol/vipdata/packages/Mesa-6.5/lib
>>
>>
>> I would be grateful for any suggestions.
>
> Are you sure you have static versions of all your external libraries
> (including libSM, libICE and libm) installed? Sometimes, the static
> versions of libraries come in separate developmental packages than the
> shared versions for Linux so there may be some additional installation you
> have to do to get the static versions.
>
> 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 libLASi project (unifont.org/lasi); the Loads of
> Linux Links project (loll.sf.net); and the Linux Brochure Project
> (lbproject.sf.net).
Yes, the static libraries are available on the system (in the default dir
/usr/lib).
Thanks, Daniel
--
Daniel Rueckert, Ph.D.
Department of Computing
Imperial College London
180 Queens' Gate Tel: +44 20 7594 8333
London SW7 2AZ Fax: +44 20 7581 8024
mailto:D.Rueckert at imperial.ac.uk http://www.doc.ic.ac.uk/~dr
More information about the CMake
mailing list