Hi Petr,

On Mon, Dec 14, 2015 at 10:53 AM, Petr Kmoch <petr.km...@gmail.com> wrote:
> Hi Tom,
>
> linking the static archive into the DLL should not be done by
> add_dependencies(), but by target_link_libraries(). There, you can
> explicitly list the archive as PRIVATE so that it does not become a part of
> the linking interface of the DLL:
>
> add_library(staticArchive STATIC ...)
>
> add_library(theDLL SHARED ...)
>
> target_link_libraries(theDLL PRIVATE staticArchive)
>

Thanks for the tip.   I'll try it out.  I hope it works as I am not
using the MSVC tool chain
to build the DLL (i.e., not using add_library and target_link_libraries).

I sent a separate reply detailing what I am using to build the DLL.
>
> On Mon, Dec 14, 2015 at 3:34 PM, Tom Kacvinsky
> <tom.kacvin...@vectorcast.com> wrote:
>>
>> I am getting link errors because cmake is adding transitive
>> dependencies.  I am building a DLL which depends on a static archive
>> (and is marked as such with add_dependencies), but when I link an
>> executable that depends on the DLL, both libraries (import library for
>> the DLL and static archive) are specified on the link. leading to
>> duplicate symbol errors as the symbol are exported form the DLL and
>> defined in the static archive.
>>
>> How do I work around this?  This is the one thing that has frustrated
>> me over the last couple of years - I have never received an answer
>> telling me how to turn off transitive dependencies.
>>
>> Sorry for the minor rant.
>>
>> Regards,
>>
>> Tom
>> --
>>
>> Powered by www.kitware.com
>>
>> Please keep messages on-topic and check the CMake FAQ at:
>> http://www.cmake.org/Wiki/CMake_FAQ
>>
>> Kitware offers various services to support the CMake community. For more
>> information on each offering, please visit:
>>
>> CMake Support: http://cmake.org/cmake/help/support.html
>> CMake Consulting: http://cmake.org/cmake/help/consulting.html
>> CMake Training Courses: http://cmake.org/cmake/help/training.html
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Follow this link to subscribe/unsubscribe:
>> http://public.kitware.com/mailman/listinfo/cmake
>
>
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to