⑴ 在visual studio上運行vtk要那些模塊有大神指點下嗎
一、確定在64位操作系統上運行還是在WOW64下運行。
在Visual
Studio平台中最後對64位應用程序編譯時,需要指定這個應用程序是在64位操作系統上作為本機應用程序運行還是在WOW64環境下運行。這個
WOW64環境是一個由操作系統提供的兼容性環境。這個環境主要是讓32位應用程序也能夠在64位的操作系統上運行。換句話說,在編譯時要確定產生的應用
程序是真正的64位應用程序(只能夠在64位操作系統上運行),還是偽64位應用程序(其實是32位應用程序,只是可以藉助WOW64在64位操作系統上
運行)。
在確定這個內容的時候,有一個內容筆者要特別提醒
大家。通常情況下在64位操作系統上,所有使用NET Framework
1.1以前版本生成的應用程序都將被視作為32位應用程序,並且始終在32位公共語言運行上的WOW64環境下運行;而在2.0版本以後生成的32位特定
應用程序可以在64位平台上的WOM64環境下運行。這兩個版本之間的細微差異,各位讀者可以開發一個小程序測試一下即可。其中的內涵是只可意會、不可言
傳呀。
二、正確部署Visual Studio開發環境。
在開發64位應用程序之前,需要明白一點。到目前
為止,Visual Studio
2008仍然是一個32位的應用程序。在安裝部署時,如果是在X86的計算機上(32位操作系統),則其將安裝32位的CLR版本。而如果在64位操作系
統上安裝部署時,安裝進程將同時安裝32位的CLR版本和合適的64位CLR。注意當將其部署到64位操作系統的時候,它將在WOW64環境下運行。
此時筆者認為需要注意一個細節問題。當在
Wom64環境下運行32位應用程序時,應用程序只限於在一個處理器上執行。也就是說應用程序不能夠享受64位操作系統所帶來的性能上的提升。而單處理器
執行會降低32位應用程序在基於Itanium系統上運行時的性能和可伸縮性。為此如果對於性能要求比較高的應用程序或者有負載比較高的伺服器,盡量不要
採用兼容的方式。即32位應用程序在32位操作系統上運行,而不要在Wom64環境下運行。否則的話,不但不能夠享受64位操作系統帶來的好處,反而會降
低應用程序原有的性能,得不償失。
三、32位應用程序在64位CLR上運行可能導致意外的結果。
雖然64位操作系統提供另一個WOW64環境,使得32位應用程序能夠在64位操作系統上運行。也就是說,在大部分情況下32位應用程序可以在32位或者64位操作系統上同等的運行,其最終的結果都是相同的。但是有時候也會有意外。這些意外主要是以下原因所造成的。
如在應用程序的結構中包含一些大小隨平台而改變的成員。如指針類型的對象,其會操作操作系統位數的不同而改變。再如指針演算法中如果包含固定大小,或者不正確的平台調用與COM聲明等等,都會導致32位應用程序在64位CLR上運行出現一些意外的結果。
為此筆者特別提醒,如果開發人員設計一些兼容的應用程序時(即可以同時在32位與64位應用程序上運行),必須要注意這些因素對應用程序運行過程的影響。在開發中,要盡量避免使用這些對象,以免不必要的麻煩。
四、如何判斷某個應用程序是否適合在64位操作程序上運行。
在應用程序開發時,開發人員可能會借鑒已有的應用
程序。此時他們就需要判斷手中的應用程序能否在WOW64環境下運行。或者說,只有在特定的平台下,如32位操作系統或者64位操作系統下(而不是
WOM64)下運行。要實現這個目的的話,開發環境提供了一個Corflags的命令。簡單的說,在命令行中使用corflags.exe可以確定某個
exe或者dll是僅僅在特定平台上運行,還是只可以在WOW64環境下運行。另外在必要的情況下,程序開發人員還可以利用這個命令來更改應用程序的平台
狀態。
五、調試64位應用程序與32位應用程序之間的差異。
在開發平台中自帶有應用程序的調試工具。應用程序
調試一般包括本地調試與遠程調試。對於一些中大型的應用程序而言,遠程調試是必須的。這里需要注意,在任何情況下,如果在64位計算機上安裝遠程調試都會
同時安裝32位和64位版本的遠程調試監視器。不過在調試64位應用程序的時候,則必須要選擇正確的版本。如需要選擇「遠程調試器X64)。否則的話,調
試結果會有偏差。
下面介紹一下在64位平台上VS中會出現的編譯錯誤
模塊計算機類型「x64」與目標計算機類型「X86」沖突
一種可以解決的方法是:
1、修改目標計算機類型:項目->熟悉->連接器(Linker)->高級->目標計算機。然後把目標計算機類型改成X64。如下圖所示:
2、配置管理器:解決方案平台(默認是Win32的)->選擇配置管理器->活動解決方案平台下選擇x64。如下圖所示:
清楚一下項目 重新編譯一下 OK!
項目生成64位的應用程序
一張自動更新BIOS的軟盤,重新刷新BIOS,
⑵ 如何用pcl配置visual studio 2010
1.首先下載windows的安裝包。我用的是預編譯版本的多合一包,需要自己編譯的也可以。注意下載時要看清楚vs2010的版本是32位還是64位,不然一些庫會找不到對應入口,導致編譯不通過的。
tips:可以在開始菜單下的Microsoft Visual Studio 2010文件夾下,查看Microsoft Windows SDK Tools,如果看到程序後面(如IL反匯編程序)有(x64)字樣,則vs是64位的,沒有就放心安裝32位版本吧。
如果是用cmake生成pcl解決方案,要注意在cmake的時候確定各個依賴庫的路徑,可以在對應項上把滑鼠停留一下,看看有什麼提示信息,特別是VTK的目錄。有些時候能夠繼續生成,但是部分模塊並沒有設置好參數,會導致編譯出來的PCL運行不良好。
2.安裝完畢後就測試一下PCL的效果吧,要注意項目對應的包含目錄、庫目錄、庫文件(LIB)和運行環境(DLL)。
用http://www.pointclouds.org/documentation/tutorials/pcl_visualizer.php#pcl-visualizer上面的常式試一試,新建工程,粘貼代碼……
在包含目錄下添加:
C:\Program Files\PCL 1.5.1\3rdParty\Boost\include;
C:\Program Files\PCL 1.5.1\3rdParty\Eigen\include;
C:\Program Files\PCL 1.5.1\3rdParty\Flann\include;
C:\Program Files\PCL 1.5.1\3rdParty\Qhull\include;
C:\Program Files\PCL 1.5.1\3rdParty\VTK\include\vtk-5.8;
C:\Program Files\OpenNI\Include;
C:\Program Files\PCL 1.5.1\include\pcl-1.5;
(對應自己機子上PCL的位置,如果為了CMAKE方便很多會放在根目錄下。即C:\PCL)
在庫目錄下添加:
C:\Program Files\PCL 1.5.1\3rdParty\Boost\lib;
C:\Program Files\PCL 1.5.1\3rdParty\Qhull\lib;
C:\Program Files\PCL 1.5.1\3rdParty\Flann\lib;
C:\Program Files\PCL 1.5.1\3rdParty\VTK\lib\vtk-5.8;
C:\Program Files\PCL 1.5.1\lib;
C:\Program Files\OpenNI\Lib;
在附加依賴項上添加:
opengl32.lib
pcl_kdtree_debug.lib
pcl_io_debug.lib
pcl_search_debug.lib
pcl_segmentation_debug.lib
pcl_apps_debug.lib
pcl_features_debug.lib
pcl_filters_debug.lib
pcl_visualization_debug.lib
pcl_common_debug.lib
flann_cpp_s-gd.lib
libboost_system-vc100-mt-gd-1_47.lib
libboost_filesystem-vc100-mt-gd-1_47.lib
libboost_thread-vc100-mt-gd-1_47.lib
libboost_date_time-vc100-mt-gd-1_47.lib
libboost_iostreams-vc100-mt-gd-1_47.lib
openNI.lib
vtkalglib-gd.lib
vtkCharts-gd.lib
vtkCommon-gd.lib
vtkDICOMParser-gd.lib
vtkexoIIc-gd.lib
vtkexpat-gd.lib
vtkFiltering-gd.lib
vtkfreetype-gd.lib
vtkftgl-gd.lib
vtkGenericFiltering-gd.lib
vtkGeovis-gd.lib
vtkGraphics-gd.lib
vtkhdf5-gd.lib
vtkHybrid-gd.lib
vtkImaging-gd.lib
vtkInfovis-gd.lib
vtkIO-gd.lib
vtkjpeg-gd.lib
vtklibxml2-gd.lib
vtkmetaio-gd.lib
vtkNetCDF-gd.lib
vtkNetCDF_cxx-gd.lib
vtkpng-gd.lib
vtkproj4-gd.lib
vtkRendering-gd.lib
vtksqlite-gd.lib
vtksys-gd.lib
vtktiff-gd.lib
vtkverdict-gd.lib
vtkViews-gd.lib
vtkVolumeRendering-gd.lib
vtkWidgets-gd.lib
vtkzlib-gd.lib
這里要注意PCL引用到的其他庫文件一定要加進去,VTK的庫很多,而且依賴關系我看得很亂,所以為了方便就全加進去了。
如果沒有加完整,很多信息提示錯誤的,之前忘了加一個什麼庫,導致很多error LNK2019,還讓我重裝了很多次……
注意庫要對應debug和release版,debug後面一般都有-gd或者_debug的,看看就能分出來了。對應錯了還會有error LNK:
error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in XXXX.......
這時應該可以看到成功生成的信息了:
⑶ VS2010,VTK,QT混合編程,在編譯VTK.sln時出現如下錯誤,實在不知道為什麼,請大家給看看,謝謝!
鏈接器添加vtkcommon.lib注意相對路徑‥\‥\‥\bin\debug\vtkCommon.lib
⑷ CMake編譯VTK,ITK總是出錯
我編譯過ITK與VTK剛開始也不行,後來成功了。總結成功原因:1.操作系統要干凈2.最好正版的VC(我從微軟下的90天試用版VS2008)3.你的這個錯誤明顯是路徑不對
⑸ Cmake動態編譯VTK庫(QVtkwidget)
在版本問題上大費周章之後,得到如下的成功嘗試
軟體版本說明:
PCl1.8.1 + VS2017 + Qt5.9.6 + Cmake + Vtk8.0.0
點擊Configure後對條目進行處理:(修改完成繼續Configure直到沒有錯誤)
1.點擊Add Entry添加
Name: CMAKE_DEBUG_POSTFIX 、Type: STRING 、Value:-gd、Description:空
讓vtk的lib最後分為debug版本跟release版本。Debug版本帶-gd。Release版本不帶-gd,方便區分.
2.勾選BUILD_SHARED_LIBS,這樣最後生成的vtk才會有dll跟lib
3.CMAKE_INSTALL_PREFIX設置為你清空的VTK文件夾(為了方便,這里選擇的路徑為PCL集成的VTK路徑)
4.勾選VTK_Group_Qt,這樣以後方便在qt裡面使用
5.修改Qt5_DIR路徑為PATH=D:/Qt/Qt5.12.0/5.12.0/msvc2017_64/lib/cmake/Qt5
6.修改VTK_QT_VERSION:STRING=5,使用Qt5修改相應版本號
7.如出現qmake路徑則修改QT_QMAKE_EXECUTABLE:FILEPATH=D:/Qt/Qt5.12.0/5.12.0/msvc2017_64/bin/qmake.exe
完成Configure,不出意外就不再顯示紅色,接著點Generate
接著以管理員身份運行VS2017,打開構建目錄下的VTK.sln
選擇Debug,x64,然後右鍵解決方案窗口的ALL_BUILD --> 生成。
漫長等待...ing
然後右鍵install --> 僅生成install
Release版本同理,先ALL_BUILD --> 生成 再 右鍵install --> 僅生成install
至此完成編譯VTK操作,接下來提取所需的QVtkwidget插件
⑹ 請問dmctk,vtk,itk有什麼區別
ITK在醫學圖像分割和配准方面具有非常強大的功能,在進行分割與配准研究及開發醫學圖像處理與分析系統時,我們常常需要應用這一重要的工具。但ITK不具備可視化方面的功能,因此,在應用ITK進行圖像處理後,一般會再利用VTK或者FLTK進行可視化,觀察結果及進行交互顯示.
CMAKE
vtk源碼都是用c++編寫的,是一個大的工程,無論在什麼平台,用什麼編譯器,你都要告訴編譯器該 如何去編譯這么一個龐然大物。
工程文件是工程的一般組織形式,比如vc6.0下面是 dsw文件,gcc下可以把makefile看成這么一個東西。這些工程體系告訴編譯器該干什麼,需要什麼 樣的參數等
cmake就是這樣一個用來生成適合不同編譯器所需 要的工程文件的工具。 cmake為什麼知道那些編譯 參數呢,這不得不提CMakeList.txt這個文件,正是這個文件,提供了這些信息,換句話說,如果沒有 CMakeList.txt,我們就不能使用cmake。
⑺ 如何使用已經編譯安裝好的vtk
1.下載VTK6,可以上官網自行下載
2.解壓到當前目錄
3.進入目錄創建build文件夾,存放編譯文件。
4.進入build文件夾進行配置,進行配置ccmake .. (注意ccmake與..之間有空格,".."代表上一級目錄)
5.運行步驟4進行安裝就可以的
⑻ 編譯vtk出現的問題
說得詳細一些,編譯到什麼情況出現的錯誤,bin已經編譯出其他exe和dll文件了么?
⑼ win7系統下怎麼正確安裝 VTK(Visualization Toolkit)啊有沒有高手幫下小弟!急!
不知道你碰到的是什麼問題
解壓source code和data的rar,然後修改vtkMFCWindow.cpp中的
#define WINVER 0x0400----------> #define WINVER 0x0501
然後再進行編譯,
在win7下,可能需要將vtk install的文件夾從C:/program files/vtk 改一下,我改成C:/VTK
否則不知道為什麼沒有安裝.h和.lib文件到該文件夾下。
打開VTK.sln,Install右鍵編譯即可。
here is some .lib filenames:
QVTK.lib
vtkproj4.lib
vtklibxml2.lib
vtkQtChart.lib
vtkexoIIC.lib
vtkalglib.lib
vtkWidgets.lib
vtkVolumeRendering.lib
vtkGenericFiltering.lib
vtkGeovis.lib
vtkViews.lib
vtkHybrid.lib
vtkInfovis.lib
vtkMFC.lib
vtkIO.lib
vtkImaging.lib
vtkzlib.lib
vtkNetCDF.lib
vtkjpeg.lib
vtkRendering.lib
vtkGraphics.lib
vtkFiltering.lib
vtkCommon.lib
vtkverdict.lib
vtkDICOMParser.lib
vtkmetaio.lib
vtkexpat.lib
vtkfreetype.lib
vtkftgl.lib
vtktiff.lib
vtksqlite.lib
vtksys.lib
vtkpng.lib
add these into the Linker->input->additional dependencies.
以上是網上找的,希望對你有幫助 。