[CMake] SWIG CMAKE project not linked correctly

Bruce Jones bruce.david.jones at gmail.com
Fri Sep 15 13:19:38 EDT 2017


I'm not sure what is different between the CMake generated build and the
manual build, but according to the swig community definitions in the cpp
should be fine. I also couldn't find anything in the swig documentation to
suggest otherwise.

I did originally raise an issue on the swig github page:
https://github.com/swig/swig/issues/1091#issuecomment-329606916


On Fri, 15 Sep 2017 at 12:33 Hendrik Sattler <post at hendrik-sattler.de>
wrote:

>
>
> Am 15. September 2017 15:23:42 MESZ schrieb Bruce Jones <
> bruce.david.jones at gmail.com>:
> >Hi,
> >
> >I have a relatively simple SWIG - CMAKE project that is not linked
> >correctly, source files can be downloaded here:
> >https://drive.google.com/open?id=0B4Y0idbHnikgTUlocmQtNDY2czQ
> >
> >The problem I have is if the template function Foo is implemented in
> >the
> >header file, the project compiles and works successfully. If Foo is
> >instead
> >implemented in the cpp file, the project compiles but fails either when
> >linking on at runtime on Windows and Linux respectively.
>
> Templated member functions must be defined in the header. Exceptions are
> explicitly instantiated ones for certain template parameter values.
>
> >On windows the build will fail at linking with "unresolved external
> >symbols", as though the template function is not instantiated.
> >
> >On Linux python fails to import the module with "undefined symbol".
> >
> >If I build the projects by hand (not with CMake) they compile and link
> >successfully, and run successfully.
>
> Strange. it should not work because the method definition in the cpp file
> will not result in any symbol due to unknown type T. So what are you doing
> differently? Some commands must differ.
>
> HS
>
> --
> Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail
> gesendet.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20170915/344ba037/attachment.html>


More information about the CMake mailing list