[CMake] How to specify that a target link library is shared ?

Andrea Borsic Andrea.Borsic at Dartmouth.edu
Tue Oct 7 12:05:20 EDT 2008


Dear All,

I am a recent user of CMake, and I cannot figure out how to tell CMake 
that a TARGET_LINK_LIBRARY is shared. I am working under Windows Xp with 
MS VisualStudio 2008, and the following is my CMakeLists file:

PROJECT(Triangle)

ADD_LIBRARY(triangle_lib SHARED triangle.c)

ADD_EXECUTABLE(tricall tricall.c)

TARGET_LINK_LIBRARIES(tricall triangle_lib)

With the first target I am building a shared library 'triangle_lib.dll' 
and with the second target I'd like to build an executable 'tricall' 
that links to such library.

Linking fails, as VS 2008 is looking for the static library 
'triangle_lib.lib'. I have been searching the forums, and came across an 
example: TARGET_LINK_LIBRARIES(tricall SHARED triangle_lib), but then 
the linker looks for SHARED.lib, so 'SHARED' in not interpreted as a 
keyword but as the name of a library.

Does anybody know how I should specify that I am linking against a 
shared library ?

Thanks in advance for your advice,

Best Regards,

Andrea


More information about the CMake mailing list