其实CMake入门非常简单,不要被那些附加的功能搞的头大了。对于初学者,只要掌握基本的语法即可。
使用CMake之前你一定要安装CMake,以MacOSXCatalina为例,使用brewinstallcmake即可,不会的同学可以参考:
macOSCatalina安装geant4.10.6.p01
最简单的CMakeLists.txt文件内容如下:
project(readPlaneDoseFromRTDoseFile)cmake_minimum_required(VERSION3.8)set(CMAKE_CXX_FLAGS-std=c++11)find_package(DCMTKREQUIRED)find_package(OpenCVREQUIRED)find_package(VTKREQUIRED)include_directories(${DCMTK_INCLUDE_DIRS})include_directories(${OpenCV_INCLUDE_DIRS})include(${VTK_USE_FILE})aux_source_directory(.SRC_LIST)add_executable(${PROJECT_NAME}${SRC_LIST})target_link_libraries(${PROJECT_NAME}${DCMTK_LIBRARIES}${OpenCV_LIBS}${VTK_LIBRARIES})
哦,对了,写代码最好是安装一个IDE,不要迷信vim,emacs等上古神器,你驾驭不了的。
这里我使用的是QTCreator,它会自动生成CMakeLists.txt文件。对于使用第三方库的时候,IDE有提示功能,试问谁能记住那么多函数的用法呢?或者是类的用法?
这里解释一下:
project(readPlaneDoseFromRTDoseFile)#这个是自动生成的,与你的工程的文件夹同名cmake_minimum_required(VERSION3.8)#版本最低要求,可以不要set(CMAKE_CXX_FLAGS-std=c++11)#这个是我加的,为了实现c++11的一些功能,现在可以不用了,如果你使用CMake3.19以上find_package(DCMTKREQUIRED)#如果你使用第三方库,这里我需要的是DCMTK,OpenCV和VTK,按照第三方库的要求写就可以,使用find_package()find_package(OpenCVREQUIRED)find_package(VTKREQUIRED)include_directories(${DCMTK_INCLUDE_DIRS})#find完之后使用的时候要把头文件包括进来,告诉编译器你的头文件的位置include_directories(${OpenCV_INCLUDE_DIRS})include(${VTK_USE_FILE})#VTK的方式与上面的两个不同aux_source_directory(.SRC_LIST)#自动生成的,把所有c++文件包括进来add_executable(${PROJECT_NAME}${SRC_LIST})#自动生成,生成可以执行的二进制文件target_link_libraries(${PROJECT_NAME}${DCMTK_LIBRARIES}${OpenCV_LIBS}${VTK_LIBRARIES})#我自己添加的,链接时,告诉编译器需要的库文件有哪些,在哪里。
CMakeLists文件中的注释使用#,大家看看是不是特别容易呀?
PDD曲线,能量是6MV光子线。Crossamp;amp;amp;inlineprofile,深度是mm。两个图是从RTDose文件中提取的PDD和profile,RTDose是在计划系统中建一个水模体,然后使用一个10X10的方野,SSD=cm,计算MU的剂量,profile的深度是mm。
预览时标签不可点收录于话题#个上一篇下一篇