最近在了解libfuse的用法,重新写C代码,顺便学习一下之前一直没花时间了解的cmake。
主要参考这两份文档:
另外CMake Documentation是最好的速查手册:
CMakeLists.txt是Cmake的指令文件,类似于make的makefile。
编写完CMakeLists.txt之后,执行下面的命令生成makefile等文件:
cmake CMakeLists.txt
执行过后,目录如下所示,会多出CMakeCache.txt
、cmake_install.cmake
和Makefile
三个文件,以及一个名为CMakeFiles
的目录:
CMakeCache.txt CMakeFiles/ cmake_install.cmake CMakeLists.txt main.c Makefile operations.c operations.h
这些文件生成以后,直接执行make命令开始编译:
make
cmake_minimum_required (VERSION 2.6)
project (Tutorial)
add_executable(Tutorial tutorial.cxx)
第一行限定camek的版本:
cmake_minimum_required (VERSION 2.6)
第二行设置项目名称:
project (Tutorial)
第三行添加源代码文件:
add_executable(Tutorial tutorial.cxx)
cmake_minimum_required (VERSION 2.8)
# projectname is the same as the main-executable
project(demo-fake)
# 添加编译选项
add_definitions('-g')
add_definitions('-Wall')
# -D定义宏变量
add_definitions('-D_FILE_OFFSET_BITS=64')
add_definitions('-DFUSE_USE_VERSION=26')
# 查找当前目录中的所有源文件,并将结果列表存放在变量DIR_SRCS中
aux_source_directory(. DIR_SRCS)
# 指定可执行文件名称,PROJECT_NAME是前面定义的project名称
add_executable(${PROJECT_NAME} ${DIR_SRCS})
# 添加依赖的链接库
target_link_libraries(${PROJECT_NAME} fuse)