天天看點

CMake入門——CMakeLists.txt執行

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)

CMake入門——CMakeLists.txt執行

第二種使用步驟

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即可。如果報錯權限不夠,右鍵管理者權限

繼續閱讀