我想編譯VTK,其中包括以下包含文件this例如:哪些庫應該鏈接到此VTK示例?
#include <vtkSmartPointer.h>
#include <vtkObjectFactory.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkRenderer.h>
#include <vtkActor.h>
// headers needed for this example
#include <vtkImageViewer2.h>
#include <vtkDICOMImageReader.h>
#include <vtkInteractorStyleImage.h>
#include <vtkActor2D.h>
#include <vtkTextProperty.h>
#include <vtkTextMapper.h>
// needed to easily convert int to std::string
#include <sstream>
本來應該用CMakeLists.txt
-file它看起來像編譯:
cmake_minimum_required(VERSION 2.8)
PROJECT(ReadDICOMSeries)
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
add_executable(ReadDICOMSeries MACOSX_BUNDLE ReadDICOMSeries)
if(VTK_LIBRARIES)
target_link_libraries(ReadDICOMSeries ${VTK_LIBRARIES})
else()
target_link_libraries(ReadDICOMSeries vtkHybrid vtkWidgets)
endif()
的問題是:當我簡單地複製這些代碼並編譯它時,我會遇到很多參考錯誤(例如:Undefined reference to 'vtkDICOMImageReader::SetDirectoryName(char const*)'
)。這導致我假設我應該將一些圖書館與它聯繫起來。不幸的是,CMakeLists文件不告訴我哪個庫。我如何發現?
當你運行CMake時,它的VTK安裝路徑是否正確? – lib 2015-04-06 15:08:48
是的,一切都很好。 – 2015-04-06 17:40:33
你只有在這個例子有問題,而其他工作正常嗎?如果你編譯成功了vtk,並使用CMake設置項目,那麼包含的庫已經由cmake管理(感謝include($ {VTK_USE_FILE}),$ {VTK_LIBRARIES})。你是否可能在發佈模式下編譯VTK,並嘗試在調試中編譯示例,或者反過來呢? – lib 2015-04-06 17:49:26