欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

cmake常用命令总结

程序员文章站 2022-04-20 09:52:18
最近研究了下cmake,总结了一些常用命令,方便以后快速查找。 1. project(projectname [CXX] [C] [Java]): 1. 设置工程名。 2. set(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]]): 1. 设置变量VAR为指定值 ......

最近研究了下cmake,总结了一些常用命令,方便以后快速查找。

  1. project(projectname [cxx] [c] [java]):
    1. 设置工程名。
  2. set(var [value] [cache type docstring [force]]):
    1. 设置变量var为指定值。
    2. 例子:set(cxx_flags -g -wall)。将变量cxx_flags设置为"-g;-wall"。其中以分号分隔。
  3. include_directories([after|before] [system] dir1 dir2 ...):
    1. 将dir1, dir2作为include搜索路径。
  4. find_package( [major.minor] [quiet] [no_module] [[required|components] [components...]]):
    1. 暂时不是很理解。
    2. 例子:find_package(threads required)
  5. add_subdirectory(source_dir [binary_dir] [exclude_from_all]):
    1. source_dir下的cmakelists.txt也会被处理。
  6. 编译链接动作:
    1. add_library(libname [shared | static | module] [exclude_from_all] source1 source2 ... sourcen):
      1. 使用指定源文件生成库文件。该库文件会存储于cmake_archive_output_directory或者cmake_library_output_directory指定的目录。
    2. add_executable(exename [win32] [macosx_bundle] [exclude_from_all] source1 source2 ... sourcen):
      1. 使用指定源文件生成可执行文件。会存储于cmake_runtime_output_directory指定的位置。
    3. target_link_libraries(target library1 <debug | optimized> library2 ...):
      1. 将库文件链接到目标文件。
  7. 内置变量:
    1. 基础目录:
      1. project_source_dir:执行cmake的目录。比如我在/mnt/d/work/cpp/nanostl/build目录下执行cmake ..,虽然根cmakelists.txt位于/mnt/d/work/cpp/nanostl,project_source_dir的值还是/mnt/d/work/cpp/nanostl/build。
      2. project_binary_dir:工程根目录。比如根cmakelists.txt位于/mnt/d/work/cpp/nanostl,那么该变量就是/mnt/d/work/cpp/nanostl。
    2. cmake_cxx_flags:编译器选项。
    3. 输出目录:
      1. cmake_archive_output_directory:编译后.a文件存储位置。
      2. cmake_library_output_directory:动态链接文件.so存储位置。
      3. cmake_runtime_output_directory:可执行文件存储位置。
  8. 常用链接: