[vtk-developers] Undefined symbols after wrapping my code to Python

Ronald Römer rroemer at gmail.com
Mon Oct 9 22:34:09 EDT 2017


Hello,

I'm trying to fix a problem with the python wrapper of my library. In my
CMakeLists.txt there are the following lines:

find_package(VTK REQUIRED COMPONENTS vtkFiltersSources vtkIOLegacy
vtkFiltersExtraction vtkFiltersGeometry vtkFiltersModeling
vtkRenderingFreeType NO_MODULE)

include(${VTK_USE_FILE})

if(VTK_WRAP_PYTHON)
    find_package(PythonLibs 2.7 REQUIRED)

    if(PYTHONLIBS_FOUND)

        include_directories(${PYTHON_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR})

        include(vtkWrapPython)

        vtk_wrap_python3(${PROJECT_NAME}Python ${PROJECT_NAME}Python_srcs
vtkPolyDataBooleanFilter.cxx)

        add_library(${PROJECT_NAME}PythonD ${${PROJECT_NAME}Python_srcs})
        target_link_libraries(${PROJECT_NAME}PythonD ${PROJECT_NAME})

        add_library(${PROJECT_NAME}Python MODULE
${PROJECT_NAME}PythonInit.cxx)
        target_link_libraries(${PROJECT_NAME}Python ${PROJECT_NAME}PythonD)

    endif()
endif()

When I try to import the module into a python script, I get an import error
about undefined symbols like PyVTKObject_Type. After a little research with
nm I found out that the shared object is not linked to
libvtkWrappingPython27Core. Here are the first lines of it:

U PyBool_FromLong
U PyDict_SetItemString
U PyErr_Occurred
U PyInt_FromLong
U PyModule_GetDict
U PyString_FromString
0000000000003020 T PyVTKAddFile_vtkPolyDataBooleanFilter
U PyVTKClass_New
U PyVTKClass_Type
U PyVTKClass_vtkPolyDataAlgorithmNew

How to fix this? There is no documentation about the the python wrapper,
except https://www.vtk.org/Wiki/VTK/Python_Wrapping_FAQ.

I'm actually using VTK 6.3 and my library can be found on
https://github.com/zippy84/vtkbool.

Best regards
Ronald
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20171010/5f76896d/attachment.html>


More information about the vtk-developers mailing list