<div dir="ltr">Hi Timothee,<div><br></div><div>I checked the logs, it looks like that change was done around one year ago, but wasn't in the 7.1.1 release.</div><div><br></div><div>It looks like it links to the correct libraries, are you still seeing the missing symbol errors?</div><div><br></div><div> - David</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, May 3, 2017 at 1:20 PM, Timothee Evain <span dir="ltr"><<a href="mailto:tevain@telecom-paristech.fr" target="_blank">tevain@telecom-paristech.fr</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi!<br>
<br>
That explains why the full are in both profile, thanks for the clarification!<br>
<br>
One strange thing about the CMakeLists.txt: the one I got downloading the 7.1.1 archive on <a href="http://vtk.org" rel="noreferrer" target="_blank">vtk.org</a> does not contain this part before "target_link_libraries(<wbr>vtkpython ${VTKPYTHON_LINK_LIBS})" (around line 246) :<br>
<br>
# Add the libPython.dylib file and link explicitly against it.<br>
# This is needed because this is a new python executable, which needs it's libraries.<br>
find_package(PythonLibs REQUIRED)<br>
<span class="">list(APPEND VTKPYTHON_LINK_LIBS ${vtkPython_LIBRARIES})<br>
<br>
</span>that is in contrast to the file in github. Nonetheless, after fixing it, the reporting is :<br>
<br>
vtkPython_LIBRARIES C:/Program Files/Python_3.6.1/libs/<wbr>python36.lib<br>
<br>
VTKPYTHON_LINK_LIBS vtkWrappingPythonCore;<br>
vtkCommonCorePython;<br>
vtkCommonMathPython;<br>
vtkCommonMiscPython;<br>
vtkCommonSystemPython;<br>
vtkCommonTransformsPython;<br>
vtkCommonDataModelPython;<br>
vtkCommonColorPython;<br>
vtkCommonExecutionModelPython;<br>
vtkCommonComputationalGeometry<wbr>Python;<br>
vtkFiltersCorePython;<br>
vtkFiltersGeneralPython;<br>
vtkImagingCorePython;<br>
vtkImagingFourierPython;<br>
vtkFiltersStatisticsPython;<br>
vtkFiltersExtractionPython;<br>
vtkInfovisCorePython;<br>
vtkFiltersGeometryPython;<br>
vtkFiltersSourcesPython;<br>
vtkRenderingCorePython;<br>
vtkRenderingFreeTypePython;<br>
vtkRenderingContext2DPython;<br>
vtkChartsCorePython;<br>
vtkIOImagePython;<br>
vtkIOCorePython;<br>
vtkIOSQLPython;<br>
vtkImagingStatisticsPython;<br>
vtkInteractionStylePython;<br>
vtkRenderingImagePython;<br>
vtkRenderingOpenGL2Python;<br>
vtkDICOMPython;<br>
vtkIOLegacyPython;<br>
vtkIOXMLParserPython;<br>
vtkDomainsChemistryPython;<br>
vtkDomainsChemistryOpenGL2Pyth<wbr>on;<br>
vtkIOXMLPython;<br>
vtkParallelCorePython;<br>
vtkFiltersAMRPython;<br>
vtkFiltersFlowPathsPython;<br>
vtkFiltersGenericPython;<br>
vtkImagingSourcesPython;<br>
vtkFiltersHybridPython;<br>
vtkFiltersHyperTreePython;<br>
vtkImagingGeneralPython;<br>
vtkFiltersImagingPython;<br>
vtkFiltersModelingPython;<br>
vtkFiltersParallelPython;<br>
vtkFiltersParallelImagingPytho<wbr>n;<br>
vtkFiltersPointsPython;<wbr>vtkFiltersProgrammablePython;<wbr>vtkFiltersPythonPython;<wbr>vtkFiltersSMPPython;<wbr>vtkFiltersSelectionPython;<wbr>vtkFiltersTexturePython;<wbr>vtkFiltersVerdictPython;<wbr>vtkImagingHybridPython;<wbr>vtkInfovisLayoutPython;<wbr>vtkImagingColorPython;<wbr>vtkRenderingAnnotationPython;<wbr>vtkRenderingVolumePython;<wbr>vtkInteractionWidgetsPython;<wbr>vtkViewsCorePython;<wbr>vtkGeovisCorePython;<wbr>vtkIOAMRPython;<wbr>vtkIOEnSightPython;<wbr>vtkIOExodusPython;<wbr>vtkRenderingGL2PSOpenGL2Python<wbr>;vtkIOExportPython;<wbr>vtkIOGeometryPython;<wbr>vtkIOImportPython;<wbr>vtkIOInfovisPython;<wbr>vtkIOLSDynaPython;<wbr>vtkIOMINCPython;<wbr>vtkIOMoviePython;<wbr>vtkIONetCDFPython;<wbr>vtkIOPLYPython;<wbr>vtkIOParallelPython;<wbr>vtkIOParallelXMLPython;<wbr>vtkIOTecplotTablePython;<wbr>vtkIOVideoPython;<wbr>vtkImagingMathPython;<wbr>vtkImagingMorphologicalPython;<wbr>vtkImagingOpenGL2Python;<wbr>vtkImagingStencilPython;<wbr>vtkInteractionImagePython;<wbr>vtkPythonInterpreterPython;<wbr>vtkRenderingContextOpenGL2Pyth<wbr>on;vtkRenderingLODPython;<wbr>vtkRenderingLabelPython;<wbr>vtkRenderingMatplotlibPython;<wbr>vtkRenderingVolumeOpenGL2Pytho<wbr>n;vtkViewsContext2DPython;<wbr>vtkViewsInfovisPython;C:/<wbr>Program Files/Python_3.6.1/libs/<wbr>python36.lib<br>
<span class=""><br>
<br>
----- Mail original -----<br>
De: "David Gobbi" <<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>><br>
À: "Timothee Evain" <<a href="mailto:tevain@telecom-paristech.fr">tevain@telecom-paristech.fr</a>><br>
Cc: "VTK Users" <<a href="mailto:vtkusers@vtk.org">vtkusers@vtk.org</a>>, "Utkarsh Ayachit" <<a href="mailto:utkarsh.ayachit@kitware.com">utkarsh.ayachit@kitware.com</a>><br>
</span>Envoyé: Mercredi 3 Mai 2017 02:08:05<br>
<span class="im HOEnZb">Objet: Re: [vtkusers] Building VTK 7.1.1 with Python wrapping fail<br>
<br>
</span><div class="HOEnZb"><div class="h5">Hi Timothee,<br>
<br>
The "D" on the the vtk*PythonD does not mean "Debug".  Each build (whether<br>
release or debug) will have a full set of vtk*PythonD libraries and<br>
vtk*Python modules.  Both are needed for the VTK build.<br>
<br>
My system doesn't have a python_d debug library (I'm OS X), but it is<br>
probably unrelated to the link error, and it is totally unrelated to the<br>
PythonD libraries.<br>
<br>
As for the link error, it probably has to do with these lines in<br>
Wrapping/Python/CMakeLists.<wbr>txt:<br>
<br>
  list(APPEND VTKPYTHON_LINK_LIBS ${vtkPython_LIBRARIES})<br>
  target_link_libraries(<wbr>vtkpython ${VTKPYTHON_LINK_LIBS})<br>
<br>
Can you add the following immediately below these lines, and tell me what<br>
is printed?<br>
<br>
  message(STATUS "vtkPython_LIBRARIES ${vtkPython_LIBRARIES}")<br>
  message(STATUS "VTKPYTHON_LINK_LIBS ${VTKPYTHON_LINK_LIBS}")<br>
<br>
Regards,<br>
 - David<br>
<br>
<br>
<br>
On Tue, May 2, 2017 at 1:38 PM, Timothee Evain <<a href="mailto:tevain@telecom-paristech.fr">tevain@telecom-paristech.fr</a>><br>
wrote:<br>
<br>
> Hello David,<br>
><br>
> Some follow-up:<br>
><br>
> After vtkPythonWrapping.cmake modification, the first set of error is gone.<br>
> But then, linking fail for this project with:<br>
> [...]<br>
> 1>vtkPythonAppInit.obj : error LNK2019: unresolved external symbol<br>
> initvtkCommonCorePython referenced in function "void __cdecl<br>
> vtkpythonmodulesPythonLoadAllP<wbr>ythonModules(void)" (?<br>
> vtkpythonmodulesPythonLoadAllP<wbr>ythonModules@@YAXXZ)<br>
> 1>vtkPythonAppInit.obj : error LNK2019: unresolved external symbol<br>
> initvtkCommonMathPython referenced in function "void __cdecl<br>
> vtkpythonmodulesPythonLoadAllP<wbr>ythonModules(void)" (?<br>
> vtkpythonmodulesPythonLoadAllP<wbr>ythonModules@@YAXXZ)<br>
> 1>vtkPythonAppInit.obj : error LNK2019: unresolved external symbol<br>
> initvtkCommonMiscPython referenced in function "void __cdecl<br>
> vtkpythonmodulesPythonLoadAllP<wbr>ythonModules(void)" (?<br>
> vtkpythonmodulesPythonLoadAllP<wbr>ythonModules@@YAXXZ)<br>
> [...]<br>
><br>
> Looking at the the vtkpython linking dependencies, I'm a bit confused.<br>
> First of all, the python lib ([...]Python_3.6.1\libs\<wbr>python36.lib) is set<br>
> for release profile but also on debug (rather than [...]Python_3.6.1\libs\<wbr>python36_d.lib<br>
> ?) by cmake.<br>
> Then, for both profiles are linked all the vtk*Python and all the<br>
> vtk*PythonD libs, which seems unusual, as I was expecting vtk*Python libs<br>
> in release and vtk*PythonD libs in debug.<br>
> I'm not sure if this is an expected configuration, so I have not found the<br>
> source of error.<br>
><br>
> Don't hesitate to tell me if you need additionnal information!<br>
><br>
> Tim<br>
><br>
> ----- Mail original -----<br>
> De: "David Gobbi" <<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>><br>
> À: "Timothee Evain" <<a href="mailto:tevain@telecom-paristech.fr">tevain@telecom-paristech.fr</a>><br>
> Cc: "VTK Users" <<a href="mailto:vtkusers@vtk.org">vtkusers@vtk.org</a>>, "Utkarsh Ayachit" <<br>
> <a href="mailto:utkarsh.ayachit@kitware.com">utkarsh.ayachit@kitware.com</a>><br>
> Envoyé: Lundi 1 Mai 2017 21:52:21<br>
> Objet: Re: [vtkusers] Building VTK 7.1.1 with Python wrapping fail<br>
><br>
> Hi Tim,<br>
><br>
> As a temporary work-around, you can try modifying the VTK code yourself.<br>
> In the VTK/CMake directory, there is a file called<br>
> vtkPythonWrapping.cmake.  The following line (around line 195) is where the<br>
> problem is:<br>
><br>
>       set (EXTERN_DEFINES "${EXTERN_DEFINES}\n  extern void<br>
> init${module}Python();")<br>
><br>
> Try changing the "void" to "PyObject *":<br>
><br>
>       set (EXTERN_DEFINES "${EXTERN_DEFINES}\n  extern PyObject<br>
> *init${module}Python();")<br>
><br>
> Let me know if that fixes the compile error.<br>
><br>
>  - David<br>
><br>
> On Mon, May 1, 2017 at 1:24 PM, David Gobbi <<a href="mailto:david.gobbi@gmail.com">david.gobbi@gmail.com</a>> wrote:<br>
><br>
> > Hi Tim,<br>
> ><br>
> > I haven't seen this error message before, but my guess is that building<br>
> > the Python wrappers with static linkage does not work with Python 3.  I'm<br>
> > not sure how difficult this is to fix.  It might be as simple as adding a<br>
> > couple #ifdefs to the code (to the VTK code, I mean.).<br>
> ><br>
> >  - David<br>
> ><br>
> ><br>
> > On Mon, May 1, 2017 at 12:26 PM, Timothee Evain <<br>
> > <a href="mailto:tevain@telecom-paristech.fr">tevain@telecom-paristech.fr</a>> wrote:<br>
> ><br>
> >> Hello everyone!<br>
> >><br>
> >> I'm trying to build VTK 7.1.1 with the Python wrapping with Visual<br>
> studio<br>
> >> 2017 on Win10. Everything goes fine until the end of the build, where a<br>
> >> bunch of error appears in the vtkpython project like :<br>
> >><br>
> >> vtkPythonAppInit.cxx<br>
> >> ...\VTK_7.1.1\Wrapping\Python\<wbr>vtkpythonmodules.h(126): error C2664:<br>
> 'int<br>
> >> PyImport_AppendInittab(const char *,PyObject *(__cdecl *)(void))':<br>
> cannot<br>
> >> convert argument 2 from 'void (__cdecl *)(void)' to 'PyObject *(__cdecl<br>
> >> *)(void)'<br>
> >> ...\VTK_7.1.1\Wrapping\Python\<wbr>vtkpythonmodules.h(126): note: None of<br>
> the<br>
> >> functions with this name in scope match the target type<br>
> >> ...\VTK_7.1.1\Wrapping\Python\<wbr>vtkpythonmodules.h(129): error C2664:<br>
> 'int<br>
> >> PyImport_AppendInittab(const char *,PyObject *(__cdecl *)(void))':<br>
> cannot<br>
> >> convert argument 2 from 'void (__cdecl *)(void)' to 'PyObject *(__cdecl<br>
> >> *)(void)'<br>
> >> ...\VTK_7.1.1\Wrapping\Python\<wbr>vtkpythonmodules.h(129): note: None of<br>
> the<br>
> >> functions with this name in scope match the target type<br>
> >><br>
> >> and so on. The only similar error in the mailing list is<br>
> >> <a href="http://vtk.1045678.n5.nabble.com/VtK-7-python3-4-build-error" rel="noreferrer" target="_blank">http://vtk.1045678.n5.nabble.<wbr>com/VtK-7-python3-4-build-<wbr>error</a><br>
> >> -td5735728.html ; but that doesn't help me since my python path are<br>
> >> correctly set.<br>
> >><br>
> >> The building config is :<br>
> >> Windows 10 x64<br>
> >> Visual Studio 2017<br>
> >> Python 3.6.1 (installed from <a href="http://python.org" rel="noreferrer" target="_blank">python.org</a> exe)<br>
> >> VTK 7.1.1 with :<br>
> >> -PYTHON_DEBUG_LIBRARY C:/Program Files/Python_3.6.1/libs/<wbr>python36_d.lib<br>
> >> -PYTHON_EXECUTABLE C:/Program Files/Python_3.6.1/python.exe<br>
> >> -PYTHON_INCLUDE_DIR C:/Program Files/Python_3.6.1/include<br>
> >> -PYTHON_LIBRARY C:/Program Files/Python_3.6.1/libs/<wbr>python36.lib<br>
> >> (-Static libraries)<br>
> >><br>
> >> Anyone have already encountered such problems and solved it ?<br>
> >><br>
> >> Thanks in advance.<br>
> >><br>
> >> Tim<br>
> >><br>
> ><br>
><br>
</div></div></blockquote></div><br></div>