/usr/bin/ld: не удается найти -lvtkCommon

Я пытаюсь научиться использовать realityGrid, поэтому я использую cmake для создания некоторых примеров. После завершения использования команды ccmake я попытался использовать команду make. Но я продолжаю получать ошибки:

/usr/bin/ld: cannot find -lvtkCommon
/usr/bin/ld: cannot find -lvtkFiltering
/usr/bin/ld: cannot find -lvtkGraphics
/usr/bin/ld: cannot find -lvtkImaging
/usr/bin/ld: cannot find -lvtkIO
/usr/bin/ld: cannot find -lvtkRendering

Я нашел libvtkCommon.a в /usr/lib/vtk-5.10. Что я должен делать? Спасибо вперед.


person Juneyee    schedule 15.04.2013    source источник
comment
Я попытался переместить все отсутствующие файлы lib в /usr/lib, затем он нашел библиотеки, но все методы кажутся неопределенными, например: неопределенная ссылка на `vtkPlane::New()'.   -  person Juneyee    schedule 15.04.2013
comment
Вы действительно не должны перемещать библиотеки таким образом. Это может привести к поломке других приложений. Проблема заключается в правильной настройке пути к библиотеке.   -  person John Szakmeister    schedule 18.04.2013


Ответы (2)


вам следует установить пакет, содержащий библиотеки "vtk", чтобы ld мог их найти.

если вы установили их вручную, вам нужно добавить путь, по которому эти файлы расположены, в конфигурацию пути к библиотеке.

http://blog.andrewbeacock.com/2007/10/how-to-add-shared-libraries-to-linuxs.html

person Gung Foo    schedule 15.04.2013
comment
Я попробовал метод, который вы мне дали, но он не сработал... Все равно спасибо. - person Juneyee; 15.04.2013

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

find_package(VTK REQUIRED NO_MODULE)
include(${VTK_USE_FILE})

Если это не сработает, вы, вероятно, могли бы вернуться к чему-то вроде этого:

set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} /usr/lib/vtk-5.10)

Плохая часть последней строки заключается в том, что она плохо переносится в другие среды, где версия немного отличается.

person John Szakmeister    schedule 15.04.2013
comment
Часть cmake закончена кем-то другим. Существует переменная с именем VTK_DIR после запуска команды cmake, и для нее установлено значение /usr/lib/vtk-5.10. - person Juneyee; 15.04.2013
comment
Вы строите для правильной версии VTK? Другими словами, заголовки относятся к одной версии, а вы пытаетесь сделать ссылку на другую версию? Может 6.х против 5.х? - person John Szakmeister; 16.04.2013