dyld: символ не найден _PyBaseObject_Type при запуске проекта C ++ с VTK - PullRequest
0 голосов
/ 24 августа 2018

В настоящее время я работаю над настройкой VTK для работы в моем проекте, и я дошел до того, что смог успешно скомпилировать и связать, но после запуска приложения я получаю:

~/Projects/myProj $ ./MyProjDebug
dyld: Symbol not found: _PyBaseObject_Type
  Referenced from: /usr/local/opt/vtk/lib/libvtkWrappingPython27Core-8.1.1.dylib
  Expected in: flat namespace
 in /usr/local/opt/vtk/lib/libvtkWrappingPython27Core-8.1.1.dylib
abort trap: 6

VTK был установлен с brew, и я использую premake для генерации make-файлов (которые можно найти здесь: https://pastebin.com/0dpUUCDS). Этот следующий раздел взят из моего premake5.lua, и именно так я сейчас делаю ссылки в Библиотека ВТК:

--------------------------------
-- Find external libs (vtk) --
--------------------------------
local vtkIncPath = os.getenv("VTK_INCLUDE")
local vtkDirPath = os.getenv("VTK_DIR")

if (vtkIncPath) then
   includedirs{vtkIncPath}
else
   error("Missing vtk headers.  Please ensure the headers installed in your include path.")
end
-- Do not use the system vtk directory
if (vtkDirPath) then    
   -- link all libraries manually
   function recursiveLibraries(path)
      linkoptions { "-L"..path}
      for file in lfs.dir(path) do
         if lfs.attributes(path..file, "mode") == "file" then
            local fileName = string.match(file, [[lib(.+).dylib]])
            if fileName == nil then fileName = string.match(file, [[lib(.+).a]]) end
            if fileName == nil then fileName = string.match(file, [[(.+).so]]) end
            if fileName == nil then
            else
               links{fileName}
            end
         elseif lfs.attributes(path..file, "mode") == "directory" then
            recursiveLibraries(path..file)
         end
      end
   end

   recursiveLibraries(vtkDirPath.."/lib/")
end

Я пропустил какие-либо библиотеки? Что мне здесь не хватает? Что cmake делает, а я нет?

Редактировать: я обновил функцию, добавив ссылки на все файлы .a и .so.

Edit2: я не знаю, имеет ли это значение, но у меня также есть python, установленный через brew.

...