[CMake] How to specify that a target link library is shared ?
Boudewijn Rempt
boud at valdyas.org
Tue Oct 7 13:58:10 EDT 2008
On Tue, 7 Oct 2008, Andrea Borsic wrote:
> 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.
>
Doesn't Windows always need a .lib file, even if you will runtime link against a .dll?
I seem to remember something like that from my Borland days.
> Does anybody know how I should specify that I am linking against a shared
> library ?
>
> Thanks in advance for your advice,
>
> Best Regards,
>
> Andrea
> _______________________________________________
> CMake mailing list
> CMake at cmake.org
> http://www.cmake.org/mailman/listinfo/cmake
>
>
More information about the CMake
mailing list