CMake入口示例

通常软件项目工程都是通过IDE提供的工程管理功能实现的,包括源代码、库路径等等内容。比如,C++工程在Windows平台通常是Visual Studio的sln解决方案来管理,Linux平台通常是通过Make相关工具进行管理。当我们要开发跨平台程序的时候,往往需要分别维护。而CMake则为我们提供了一个统一维护的解决方案。

先来看一个简单的例子:

//main.c 
#include <stdio.h> 
int main() 
{ 
    printf(“Hello World from t1 Main!\n”); 
    return 0; 
}

当我们需要编译这个简单的c文件时,通常在Windows下仍然会建立一个工程进行编译,虽然我们也可以用命令行来编译,但被微软宠坏了的Windows平台研发人员相当一部分对命令行显然不感冒。Linux下则相对简单些,直接用gcc编译就好了。

那么,如果用CMake怎么来编译呢?首先我们需要新建 CmakeLists.txt 文件

PROJECT (Demo) 
SET(SRC_LIST main.c) 
MESSAGE(STATUS "This is BINARY dir " ${PROJECT_BINARY_DIR}) 
MESSAGE(STATUS "This is SOURCE dir "${PROJECT_SOURCE_DIR}) 
ADD_EXECUTABLE(demo SRC_LIST)

然后在命令行运行 cmake .

如果是在Windows平台,会自动生成相应的解决方案文件,如果是在Linux平台,则会自动生成Makefile。

当然,很明显,生成的文件和源代码混在一起,不方便管理。通常,我们需要单独建立一个build目录,然后在build目录下运行 cmake ../,这样生成的文件就都位于build目录下,不会影响原有的源代码结构。

滚动到顶部

免费制作创意短视频活动

复工复产之际,博视优学隆重推出免费制作视频活动——只需告诉我们您的视频需求,我们将免费为您制作一个创意短视频,用于您的营销推广或教学实践等。零成本试水短视频,开放名额有限,机不可失,不要犹豫!