c++构建工具之cmake使用小结

来源:互联网 发布:杂化材料的功能优化 编辑:程序博客网 时间:2024/06/05 23:46
0.前言

使用cmake的过程先是要编写一个cmakelists.txt的文本,然后使用cmake命令生成对应平台的工程。

在windows下命令行或者使用cmake gui工具,生成vs工程,然后使用vs编译。

在linux下则是根据cmakelists.txt生成makefile,然后使用make命令调用编译。


cmake命令编译指定目录下的cmakelists.txt,具体选项使用cmake -h查看如下:
Usage  cmake [options] <path-to-source>  cmake [options] <path-to-existing-build>Specify a source directory to (re-)generate a build system for it in thecurrent working directory.  Specify an existing build directory tore-generate its build system.Options  -C <initial-cache>           = Pre-load a script to populate the cache.  -D <var>[:<type>]=<value>    = Create a cmake cache entry.  -U <globbing_expr>           = Remove matching entries from CMake cache.  -G <generator-name>          = Specify a build system generator.  -T <toolset-name>            = Specify toolset name if supported by                                 generator.  -A <platform-name>           = Specify platform name if supported by                                 generator.  -Wdev                        = Enable developer warnings.  -Wno-dev                     = Suppress developer warnings.  -Werror=dev                  = Make developer warnings errors.  -Wno-error=dev               = Make developer warnings not errors.  -Wdeprecated                 = Enable deprecation warnings.  -Wno-deprecated              = Suppress deprecation warnings.  -Werror=deprecated           = Make deprecated macro and function warnings                                 errors.  -Wno-error=deprecated        = Make deprecated macro and function warnings                                 not errors.  -E                           = CMake command mode.  -L[A][H]                     = List non-advanced cached variables.  --build <dir>                = Build a CMake-generated project binary tree.  -N                           = View mode only.  -P <file>                    = Process script mode.  --find-package               = Run in pkg-config like mode.  --graphviz=[file]            = Generate graphviz of dependencies, see                                 CMakeGraphVizOptions.cmake for more.  --system-information [file]  = Dump information about this system.  --debug-trycompile           = Do not delete the try_compile build tree.                                 Only useful on one try_compile at a time.  --debug-output               = Put cmake in a debug mode.  --trace                      = Put cmake in trace mode.  --trace-expand               = Put cmake in trace mode with variable                                 expansion.  --warn-uninitialized         = Warn about uninitialized values.  --warn-unused-vars           = Warn about unused variables.  --no-warn-unused-cli         = Don't warn about command line options.  --check-system-vars          = Find problems with variable usage in system                                 files.  --help,-help,-usage,-h,-H,/? = Print usage information and exit.  --version,-version,/V [<f>]  = Print version number and exit.  --help-full [<f>]            = Print all help manuals and exit.  --help-manual <man> [<f>]    = Print one help manual and exit.  --help-manual-list [<f>]     = List help manuals available and exit.  --help-command <cmd> [<f>]   = Print help for one command and exit.  --help-command-list [<f>]    = List commands with help available and exit.  --help-commands [<f>]        = Print cmake-commands manual and exit.  --help-module <mod> [<f>]    = Print help for one module and exit.  --help-module-list [<f>]     = List modules with help available and exit.  --help-modules [<f>]         = Print cmake-modules manual and exit.  --help-policy <cmp> [<f>]    = Print help for one policy and exit.  --help-policy-list [<f>]     = List policies with help available and exit.  --help-policies [<f>]        = Print cmake-policies manual and exit.  --help-property <prop> [<f>] = Print help for one property and exit.  --help-property-list [<f>]   = List properties with help available and                                 exit.  --help-properties [<f>]      = Print cmake-properties manual and exit.  --help-variable var [<f>]    = Print help for one variable and exit.  --help-variable-list [<f>]   = List variables with help available and exit.  --help-variables [<f>]       = Print cmake-variables manual and exit.GeneratorsThe following generators are available on this platform:  Unix Makefiles               = Generates standard UNIX makefiles.  Ninja                        = Generates build.ninja files.  Watcom WMake                 = Generates Watcom WMake makefiles.  CodeBlocks - Ninja           = Generates CodeBlocks project files.  CodeBlocks - Unix Makefiles  = Generates CodeBlocks project files.  CodeLite - Ninja             = Generates CodeLite project files.  CodeLite - Unix Makefiles    = Generates CodeLite project files.  Eclipse CDT4 - Ninja         = Generates Eclipse CDT 4.0 project files.  Eclipse CDT4 - Unix Makefiles= Generates Eclipse CDT 4.0 project files.  KDevelop3                    = Generates KDevelop 3 project files.  KDevelop3 - Unix Makefiles   = Generates KDevelop 3 project files.  Kate - Ninja                 = Generates Kate project files.  Kate - Unix Makefiles        = Generates Kate project files.  Sublime Text 2 - Ninja       = Generates Sublime Text 2 project files.  Sublime Text 2 - Unix Makefiles                               = Generates Sublime Text 2 project files.


1.生成执行程序
project(HELLO)set(SRC_LIST main.c hello.c)add_executable(hello ${SRC_LIST})

2.生成动态库
project(HELLO)set(LIB_SRC hello.c)add_library(libhello STATIC ${LIB_SRC})

3.生成静态库
project(HELLO)set(LIB_SRC hello.c)add_library(libhello SHARED ${LIB_SRC})

4.参考资料
http://blog.csdn.net/dbzhang800/article/details/6314073
http://blog.csdn.net/dbzhang800/article/details/6329068
https://cmake.org/cmake/help/v3.3/index.html
http://blog.csdn.net/sjt19910311/article/details/51660209
http://blog.csdn.net/wzzfeitian/article/details/40963457