0.前言
使用cmake的过程先是要编写一个cmakelists.txt的文本,然后使用cmake命令生成对应平台的工程。
在windows下命令行或者使用cmake gui工具,生成vs工程,然后使用vs编译。
在linux下则是根据cmakelists.txt生成makefile,然后使用make命令调用编译。
cmake命令编译指定目录下的cmakelists.txt,具体选项使用cmake -h查看如下:
Usage
cmake [options]
cmake [options]
Specify a source directory to (re-)generate a build system for it in the
current working directory. Specify an existing build directory to
re-generate its build system.
Options
-C = Pre-load a script to populate the cache.
-D [:]= = Create a cmake cache entry.
-U = Remove matching entries from CMake cache.
-G = Specify a build system generator.
-T = Specify toolset name if supported by
generator.
-A = 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 = Build a CMake-generated project binary tree.
-N = View mode only.
-P = 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 [] = Print version number and exit.
--help-full [] = Print all help manuals and exit.
--help-manual [] = Print one help manual and exit.
--help-manual-list [] = List help manuals available and exit.
--help-command [] = Print help for one command and exit.
--help-command-list [] = List commands with help available and exit.
--help-commands [] = Print cmake-commands manual and exit.
--help-module [] = Print help for one module and exit.
--help-module-list [] = List modules with help available and exit.
--help-modules [] = Print cmake-modules manual and exit.
--help-policy [] = Print help for one policy and exit.
--help-policy-list [] = List policies with help available and exit.
--help-policies [] = Print cmake-policies manual and exit.
--help-property [] = Print help for one property and exit.
--help-property-list [] = List properties with help available and
exit.
--help-properties [] = Print cmake-properties manual and exit.
--help-variable var [] = Print help for one variable and exit.
--help-variable-list [] = List variables with help available and exit.
--help-variables [] = Print cmake-variables manual and exit.
Generators
The 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