Windows下Cmake的简易工程构建

新建两个文件head,src,用于存放头文件和c文件。
再新建CMakeLists.txt文件,用于cmake配置。
当前文件结构:

--->CMakeLists.txt
|
--->head
|
--->src

新建一个头文件hello.h
内容如下:

#ifndef HELLO_H
#define HELLO_H
#include "stdio.h"
void Print(void);
#endif
 

并放到head文件里面去。
新建main.c && hello.c.
hello.c内容如下:

#include "hello.h"
void Print(void)
{
	printf("Hello!\n"); 
 } 

main.c内容如下:

#include "hello.h"
int  main()
{
	Print();
	return 0;
 } 

将这个两个c文件放到src文件里面去。

现在文件结构如下:

--->CMakeLists.txt
|
--->head--->hello.h
|
--->src--->main.c
       --->hello.c

再到src目录下再新建一个CMakeLists.txt文件,内容如下:

set(SRC_LIST main.c
	         hello.c
)
add_executable(main     ${SRC_LIST})

此时返回顶层目录。

--->CMakeLists.txt
|
--->head--->hello.h
|
--->src--->main.c
       --->hello.c
       --->CMakeLists.txt

再对顶层的CMakeLists.txt文件写入如下内容:

#顶层CmakeLists
cmake_minimum_required(VERSION 3.0) #不是必须的内容

include_directories( 			#指定头文件
	"C:/Users/ASUS/Desktop/Cmake/head"
)

#指定生成main.exe文件
project(main)

#关联src目录下的CMakeLists.txt
add_subdirectory(src bin)    #指定bin文件,main.exe文件生成在这里面

#add_executable(main main.c hello.c)  #.exe
#add_library(hello STATIC hello.c)	  #.lib
#add_library(Hello SHARED hello.c) 	  #.dll

此时新建一个build空文件,这是为了后面的编译生成的文件都放在这里面,防止污染源代码。
现在的文件结构如下:

--->CMakeLists.txt
|
--->head--->hello.h
|
--->src--->main.c
       --->hello.c
       --->CMakeLists.txt
|
--->build       

进入到build文件里面去:
Windows下Cmake的简易工程构建_第1张图片
现在build是完全空的!

然后输入命令:cmake -G "MinGW Makefiles" ..
我这里指定了MinGW编译器进行编译。
Windows下Cmake的简易工程构建_第2张图片
由此得到Makefile文件,再使用mingw32-make,进行编译。
Windows下Cmake的简易工程构建_第3张图片
最后进入bin目录,可以看见此时生成了main.exe。
至此编译全部完成。
运行如下:
Windows下Cmake的简易工程构建_第4张图片

你可能感兴趣的:(其他,C语言,windows,c语言)