入门级编写一——同一目录,单个文件
一个典型的CMakeLists.txt
文件信息如下:
# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project(test_cmake)
# 指定生成目标,test即为生成的可执行文件
add_executable(test test_cmake.c)
将CMakeLists.txt
与test_cmake.c
放在同一目录下。
建议:
在使用cmake命令前,在CMakeLists.txt
所在的目录下先建一个build/
的文件夹,进入build/
文件夹,然后再bash命令行下输入:$ cmake ..
回车,然后输入$ make
,在build/
文件夹下将有可执行文件test
,然后运行$ ./test
即可完成任务。
入门级编写二——同一目录,多个文件
CMakeLists.txt
文件信息更改如下:
# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project(test_cmake)
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS) #增加的部分
# 指定生成目标
add_executable(test ${DIR_SRCS})
入门级编写三——多个目录,多个文件
文件路径:
./Demo3
|
+--- main.cc
|
+--- math/
|
+--- MathFunctions.cc
|
+--- MathFunctions.h
对于这种情况,需要分别在项目根目录 Demo3 和 math 目录里各编写一个 CMakeLists.txt 文件。为了方便,我们可以先将 math 目录里的文件编译成静态库再由 main 函数调用.
根目录CMakeLists.txt
文件信息更改如下:
# CMake 最低版本号要求
cmake_minimum_required (VERSION 2.8)
# 项目信息
project(test_cmake)
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)
# 添加 math 子目录
add_subdirectory(math)
# 指定生成目标
add_executable(test main.cc)
# 添加链接库
target_link_libraries(Demo MathFunctions)
子目录中的 CMakeLists.txt:
# 查找当前目录下的所有源文件
# 并将名称保存到 DIR_LIB_SRCS 变量
aux_source_directory(. DIR_LIB_SRCS)
# 生成链接库
add_library (MathFunctions ${DIR_LIB_SRCS})
在该文件中使用命令 add_library 将 src 目录中的源文件编译为静态链接库。
高级设置
暂时用不上,就先不研究了。研究了之后再更新
网友评论