日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编译VTK的MFC库

發(fā)布時(shí)間:2023/12/31 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编译VTK的MFC库 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文鏈接:http://blog.csdn.net/left_la/article/details/7069708

本人做了少量修改!


Win7 + VS2010 + CMake2.8.6 + VTK5.8

1、準(zhǔn)備:
? ? 1)下載安裝Vs2010
? ? 2)下載安裝CMake2.8.6 (www.cmake.com)
? ? 3)下載VTK相關(guān)包:(www.vtk.org)
? ? ? ? 1.vtk-5.8.0-win32-x86.exe ?(win32安裝程序)(還是安裝的好!)
? ? ? ? 2.vtk-5.8.0.zip ?(源碼包)
? ? ? ? 3.vtkdata-5.8.0.zip ?(數(shù)據(jù)包)
? ? ? ? 4.vtkDocHtml-5.8.0.tar.gz ?(文檔包,可下可不下)

2、為vtk的安裝新建個(gè)根文件夾,命名為"VTK5.8",在這個(gè)文件夾下新建四個(gè)文件夾,分別命名為 VTKSrc、VTKData、VTKDoc、Bin,將之前下載的源碼包數(shù)據(jù)包文檔包分別解壓到前三個(gè)文件夾中。

3、安裝vtk-5.8.0-win32-x86.exe,安裝到根文件夾 VTK5.8 下。

4、打開CMake(CMake2.8\bin\cmake-gui.exe),
? ?設(shè)置:Source code目錄:F:\Dev\SDK\VTK5.8\VTKSrc?
? ? ? ? Build目錄:F:\Dev\SDK\VTK5.8\Bin ?(目錄地址請根據(jù)自己電腦目錄做更改)
? ?然后configure,在彈出框中選擇VS2010作為我們的編譯器,然后Cmake自動(dòng)描述需要的文件。
? ?停下后,顯示紅色列表,接著開始修改cmake選項(xiàng),手動(dòng)勾上?
? ?build_shared_libs、build_examples,然后勾選cmake界面上方的Advanced,進(jìn)入下一級(jí),這時(shí)到下面重新找到vtk_use_guisupport 這一項(xiàng)勾選,再 configure,之后會(huì)出現(xiàn) vtk_use_mfc,選擇它勾選,再一直configure,直到紅色消失。
? ?最后Generate,產(chǎn)生相應(yīng)的KTV.sln 解決方案。
? ?
? ?(
? ? ? 相關(guān)說明:
? ? ? 1、為什么要勾選vtk_use_mfc? 很多人把 vtk 安裝好了,卻無法運(yùn)行vtk 中與mfc
? ? ? ?混合編程的例子,提示錯(cuò)誤都是缺少vtkmfc.lib,問題就出在這個(gè)選項(xiàng),我們必須
? ? ? ?把它設(shè)置為 on。
? ? ? 2、vtk_use_qvtk,這是給QT用的vtk
? ? ? 3、vtk_data_root: 目的是告訴cmake,vtk 需要的數(shù)據(jù)都在哪里,我們的數(shù)據(jù)在
? ? ? F:\Dev\SDK\VTK5.8\VTKData
? ? ? 4、cmake_install_prefix: 這個(gè)是指定一個(gè)目錄把.h .lib .dll等精華放在這里,
? ? ? "VTK安裝三步曲"里說是為將來裝vtk做準(zhǔn)備。
? ? ? 5、build_examples: 就是詢問是否編譯 vtk 中的例子,初次用VTK,選上便于
? ? ? 學(xué)習(xí)。
? ? ? 6、build_shared_libs: 如果設(shè)置為off,就只會(huì)生成lib文件,用于開發(fā)肯定是
? ? ? 夠了。如果設(shè)置為on,將會(huì)多生成 dll 文件,這些dll需要拷到windows/system
? ? ? 目錄下。如果用靜態(tài)庫編程,即off時(shí),應(yīng)用程序可以獨(dú)立運(yùn)行,尺寸也比較大,
? ? ? 如果用動(dòng)態(tài)庫編程,即on時(shí),應(yīng)用程序必須找到動(dòng)態(tài)庫才能運(yùn)行,但尺寸可以做
? ? ? 得比較小。建議選On, 我試過選OFF,所謂的靜態(tài)編譯,但之后新建一個(gè)項(xiàng)目時(shí),
? ? ? 還是會(huì)出現(xiàn)找不到文件的問題。
? ? ? 7.vtk_use_parallel: 對(duì)于想用vtk 做并行計(jì)算的朋友,要把這個(gè)選上,
? ? ? 對(duì)于只想學(xué)學(xué)vtk 的,保持默認(rèn) off ?
? ? ?)

5、打開 KTV.sln ,如果使用vs2010,在編譯整個(gè)解決方案之前,需要注意:
? 1)請先找到VTKSrc\GUISupport\MFC\vtkMFCWindow.cpp ,找到類似以下源碼并修改數(shù)值如下:

[cpp] view plaincopy
  • #ifndef?WINVER??
  • #define?WINVER?0x0501??
  • #endif??
  • #ifndef?_WIN32_WINNT??
  • #define?_WIN32_WINNT?0x0501?//?=_WIN32_WINNT_NT4??
  • #endif??
  • #ifndef?_WIN32_IE??
  • #define?_WIN32_IE?0x0601?//=_WIN32_IE_IE60SP1??
  • #endif??
  • ? 2)如果之前Cmake勾選了 build_examples,工程中含有VKT的examples,僅改上面代碼還不夠,還需要找到
    ? VTKSrc\Examples\GUI\Win32\vtkMFC\vtkDLG\stdafx.h
    ? VTKSrc\Examples\GUI\Win32\vtkMFC\vtkMDI\stdafx.h
    ? VTKSrc\Examples\GUI\Win32\vtkMFC\vtkSDI\stdafx.h
    ? VTKSrc\Examples\GUI\Win32\SampleMFC\stdafx.h
    ? 四個(gè)文件,每個(gè)文件下找到類似以下源碼并修改數(shù)值如下:

    [cpp] view plaincopy
  • #ifndef?WINVER??????????
  • #define?WINVER?0x0501??????
  • #endif??
  • ??
  • #ifndef?_WIN32_WINNT??????
  • #define?_WIN32_WINNT?0x0501??????
  • #endif??????????????
  • ??
  • #if?_MSC_VER?>=?1300??
  • #ifndef?_WIN32_WINDOWS??????
  • #define?_WIN32_WINDOWS?0x0501???
  • #endif??
  • #endif??
  • ??
  • #ifndef?_WIN32_IE????????
  • #define?_WIN32_IE?0x0601????
  • #endif??
  • ? 3)如果不進(jìn)行上述兩步操作,在編譯項(xiàng)目過程中會(huì)出現(xiàn)類似下面錯(cuò)誤:
    ? fatal error C1189: #error : ?This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.
    ??
    6、編譯整個(gè)解決方案。
    ? 如果之前Cmake勾選了 build_examples,工程中含有VKT的examples,在編譯過程中,以下四個(gè)項(xiàng)目vtkDLG、vtkMDI、vtkSDI、Win32SampleMFC,可能還會(huì)出現(xiàn)類似下面的LINK鏈接錯(cuò)誤:
    error LNK2019: 無法解析的外部符號(hào) "__declspec(dllimport) public: static class...
    稱找不到vtkIO.dll

    對(duì)應(yīng)解決辦法:在每個(gè)項(xiàng)目屬性的鏈接器->輸入->附加依賴項(xiàng)中添加入vtkIO.lib庫,目錄為:..\..\..\..\bin\Debug\vtkIO.lib

    就此,基本的VKT安裝及源碼編譯結(jié)束,編譯產(chǎn)生的lib、dll鏈接庫和執(zhí)行文件都生成在VTK5.8\Bin\bin\Debug文件夾下。



    總結(jié):主要是使用到了MFC支持,從中取出MFC LIB文件,取消QT的所有選擇項(xiàng),一次性成功:




    然后,打開目標(biāo)文件夾的方案文件,release 和debug都全部生成一遍,大功告成!


    總結(jié)

    以上是生活随笔為你收集整理的编译VTK的MFC库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。