cMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。
简单来说,我们可以使用cMake自动生成makefile,而不用自己去手写了。
自己之前的项目非常的杂乱无章,但是一个具体的项目一般包括src、inc、bin、log等文件夹(),本文介绍一下如何简单地利用cMake来对项目进行包装。
首先,将源文件(即.c、.cpp)放入src文件夹内,将头文件放入inc文件夹内。
进入src文件夹,创建并编写CMakeLists.txt文件,具体代码如下:
//添加头文件路径,如果在源文件内已注明则可以不加
INCLUDE_DIRECTORIES(../inc)
aux_source_directory(. ALL_SRCS)
//编译当前文件夹内所有源文件
ADD_EXECUTABLE(webserver ${ALL_SRCS})
//链接库,该链接方式为直接链接,编译时会去环境变量下寻找库文件
TARGET_LINK_LIBRARIES(webserver -lmysqlclient -lpthread -lm -lrt -latomic -lssl -lcrypto -ldl)
//链接库,该链接方式为绝对路径链接,编译时会去该路径下寻找库文件
LINK_DIRECTORIES(/usr/lib/x86_64-linux-gnu)
返回上一级,在主目录下,同样创建并编写CMakeLists.txt文件,具体代码如下:
//工程名,可随意命名
PROJECT(WEBSERVER)
//将该目录与src目录关联,并将生成的编译文件放至bin目录下
ADD_SUBDIRECTORY(src ../bin)
接着,进入bin目录,输入:
camke ..
此时就会在bin目录下生成相关的编译文件以及makefile文件,直接make即可生成可执行文件