CMakeLists.txt執行,有兩種方法。第一種使用cmake-gui.exe,可視化界面,簡單易懂。第二種使用*.bat腳本,批量傳參,高效快速。
準備:建立目錄E:\vtk_Exercise,在該目錄下建立3個檔案,分别是CMakeLists.txt,RenderCylinder.h,RenderCylinder.cpp,RunCmakeX64.bat
第一種使用步驟
step1:編寫CMakeLists.txt,示例如下
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11)
MARK_AS_ADVANCED(CMAKE_BACKWARDS_COMPATIBILITY)
SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE)
SET(VTK_DIR E:/Thirdparty/x64/VTK)
project(RenderCylinder)
INCLUDE_DIRECTORIES(
${VTK_DIR}/include/vtk-6.0
)
LINK_DIRECTORIES(
${VTK_DIR}/lib/${ConfigurationName}
)
add_executable(${PROJECT_NAME} RenderCylinder.cpp RenderCylinder.h)
target_link_libraries(${PROJECT_NAME}
vtkFiltersGeometry-6.0
vtkIOGeometry-6.0
vtkIOCore-6.0
vtkCommonCore-6.0
vtkInteractionStyle-6.0
vtkRenderingOpenGL-6.0
vtkCommonDataModel-6.0
vtkfilterscore-6.0
vtkRenderingCore-6.0
vtkCommonExecutionModel-6.0
vtkFiltersSources-6.0
)
step2:打開cmake-gui.exe,如下圖。
1是選擇最外層的CMakeLists.txt所在目錄(本例中隻有一層),點選Browse Source浏覽目錄,
2是設定生成的工程目錄,可任意設定,為友善管理,設定成E:\vtk_Exercise\bin
點選3後,選擇編譯環境,本人是Visual Studio 11 win64,然後單擊Finish,配置完成
點選4後,生成工程(該步驟即執行CMakeLists.txt)
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9kERNlXRU1UNJRVT3V1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2IjNzMDOwcTM1EjMwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
第二種使用步驟
step1:編寫腳本RunCmakeX64.bat,示例如下
set rootdir=%cd%
mkdir "Build\x64"
cd "Build\x64"
"CMake.exe" -G "Visual Studio 11 Win64" -D QT_DIR:PATH="c:\Qt\Qt5.1.1\5.1.1\msvc2012_64\lib\cmake" -D VTK_DIR_ROOT:PATH="%rootdir%\Temp\x64\VTK" TEMPLATE_RC_FILE:PATH="%rootdir%\TemplateFile\Template.rc" %rootdir%
if errorlevel 1 pause
cd..
cd..
step2:編寫CMakeLists.txt,示例如下。指令SET(VTK_DIR "${VTK_DIR_ROOT}"),建立了CMakeLists.txt和RunCmakeX64.bat的聯系,即RunCmakeX64.bat傳參數給CMakeLists.txt
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.11)
MARK_AS_ADVANCED(CMAKE_BACKWARDS_COMPATIBILITY)
SET(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE)
SET(VTK_DIR "${VTK_DIR_ROOT}")
project(RenderCylinder)
INCLUDE_DIRECTORIES(
${VTK_DIR}/include/vtk-6.0
)
LINK_DIRECTORIES(
${VTK_DIR}/lib/${ConfigurationName}
)
add_executable(${PROJECT_NAME} RenderCylinder.cpp RenderCylinder.h)
target_link_libraries(${PROJECT_NAME}
vtkFiltersGeometry-6.0
vtkIOGeometry-6.0
vtkIOCore-6.0
vtkCommonCore-6.0
vtkInteractionStyle-6.0
vtkRenderingOpenGL-6.0
vtkCommonDataModel-6.0
vtkfilterscore-6.0
vtkRenderingCore-6.0
vtkCommonExecutionModel-6.0
vtkFiltersSources-6.0
)
step3:輕按兩下RunCmakeX64.bat即可。如果報錯權限不夠,右鍵管理者權限