<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.E-MailFormatvorlage18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=DE link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal>Hi,<o:p></o:p></p>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal><span lang=EN-US>I built ITK 3.14 successfully with MinGW
(gcc 4.4) with BUILD_SHARED_LIBS=ON. However, when I try to build my project
which depends on ITK, the linker complains about multiple definitions of
symbols in ITKCommon.dll.a and libitkvnl.a (for example).<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>It seems that the transitive library
dependencies, which CMake generates for my shared library, are incorrect since
ITKCommon already links statically to itkvnl but libitkvnl.a ist still present
in the list of libraries to be linked.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>If I change the following lines in ITKs
CMakeLists.txt from<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>407: IF(WIN32)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>408: &nbsp;&nbsp;IF(BUILD_SHARED_LIBS)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>409:
&nbsp;&nbsp;&nbsp;&nbsp;SET(ITK_COMMON_BUILD_TYPE &quot;SHARED&quot;)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>410:&nbsp; &nbsp;ELSE(BUILD_SHARED_LIBS)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>411:&nbsp;&nbsp;
&nbsp;&nbsp;SET(ITK_COMMON_BUILD_TYPE &quot;STATIC&quot;)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>412:&nbsp;&nbsp; ENDIF(BUILD_SHARED_LIBS)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>413:&nbsp;&nbsp; SET(BUILD_SHARED_LIBS OFF)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>414: ENDIF(WIN32)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>to<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>407: IF(WIN32 AND NOT MINGW)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>408: &nbsp;&nbsp;IF(BUILD_SHARED_LIBS)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>409:
&nbsp;&nbsp;&nbsp;&nbsp;SET(ITK_COMMON_BUILD_TYPE &quot;SHARED&quot;)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>410:&nbsp; &nbsp;ELSE(BUILD_SHARED_LIBS)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>411:&nbsp;&nbsp;
&nbsp;&nbsp;SET(ITK_COMMON_BUILD_TYPE &quot;STATIC&quot;)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>412:&nbsp;&nbsp; ENDIF(BUILD_SHARED_LIBS)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>413:&nbsp;&nbsp; SET(BUILD_SHARED_LIBS OFF)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>414: ENDIF(WIN32 AND NOT MINGW)<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>and correct the export/import defines in
Utilities/gdcm/src/gdcmCommon.h:81 <o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>from #ifdef gdcm_EXPORTS to #ifdef
itkgdcm_EXPORTS<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>the utility libraries are build as shared
libraries and everything links fine to my project.<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>Is this a known bug, a CMake problem, or a
misconfiguration on my side?<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US><o:p>&nbsp;</o:p></span></p>

<p class=MsoNormal><span lang=EN-US>Thanks,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US>Sascha<o:p></o:p></span></p>

</div>

</body>

</html>