[CMake] Question about installing static libraries made with VS 2008

Ryan Pavlik rpavlik at iastate.edu
Mon Jun 14 15:34:08 EDT 2010


No, you need to install them all: a static library only contains 
basically the object files of the specified sources, archived together.  
Auto* and libtool do some (unpleasant) magic to split and re-combine 
these archives, in some cases, and this is a common question on this 
list.  If you want that behavior (and have this ability) add all the 
sources to your final static library.

Alternatively, you might consider using the export targets file as I 
mentioned in a previous email, as it will preserve transitive link 
dependencies: while it won't put the symbols of pear into fruit, it will 
make a consumer EXE of fruit also link pear.

Ryan

On 06/14/2010 02:20 PM, Torri, Stephen CIV NSWCDD, W15 wrote:
> I have a question about building a project with static libraries. If you have a set up like the following will the final static library be the only thing that you install? I found that there was still unresolved external symbols when I only linked against Fruit.lib in the test program.
>
> (project 1 - static)
>
>     add_library ( Apple STATIC ${Apple_SOURCES} ${Apple_HEADERS} )
>
> (project 2 - static)
>
>     add_library ( Pear STATIC ${Pear_SOURCES} ${Pear_HEADERS} )
>
> (project 3 - static)
>
>     add_library ( Orange STATIC ${Orange_SOURCES} ${Orange_HEADERS} )
>
> (project 4)
>
>     add_library ( Fruit STATIC ${Fruit_SOURCES} ${Fruit_HEADERS} )
>
>     target_link_libraries ( Fruit Apple Pear Orange )
>
> My expectation was that I would have only one static library in the end called Fruit.lib with all the symbols of Apple, Pear, Orange and Fruit in it. That is what I see for a project that I build on a Linux system using Automake, Autoconf and Libtool. In the end on the Linux system I have only one static library that I need to install.
>
> So my question is:
>
> 1. Do I need only to install Fruit.lib from the given project above to get all the symbols in the project?
>
> Stephen
>
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.cmake.org/mailman/listinfo/cmake
>    

-- 
Ryan Pavlik
HCI Graduate Student
Virtual Reality Applications Center
Iowa State University

rpavlik at iastate.edu
http://academic.cleardefinition.com
Internal VRAC/HCI Site: http://tinyurl.com/rpavlik



More information about the CMake mailing list