背景
最近的项目需要从linux转战至Windows。因为之前的项目都是在linux环境下开发的,代码也是通过CMAKE编译。攻欲善其事,必先利其器。首先要考虑的是如何在Windows环境下使用cmake编译代码。
另外一个就是IDE的选择了,相比于动辄 好几个G的Visual Studio来说,vscode 的安装以及多种功能强大的插件,所以还是还是选择它(只是因为习惯了。。。)。
现将过程记录如下,有需要的小伙伴可以参考。
cmake下载
CMake下载地址,这里我们选择 win-x86,下载完双击打开(注意:1.安装的时候选择中间的 for all user;2. 勾选add into path 加入环境变量)。
进入cmd终端,输入 cmake --verison 出现版本号即安装成功。默认安装路径:C:\Program Files\CMake\bin
MinGW-w64安装
MinGW,是Minimalist GNU for Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时库。——来自百度百科
因为 MinGW-w64 可以编译生成 64位 或 32位 可执行程序,而 MinGW 只能编译生成32位可执行程序,现在已经很少用了。
MinGW-w64下载地址,进去后往下拉,当前最新版本是GCC-8.1.0,下载后解压,添加环境变量:系统->高级系统设置->环境变量->系统环境变量->新建 将自己解压后的路径添加进去即可,注意路径尽可能不要有中文。
进入cmd终端,输入 cmake --verison 出现版本号即安装成功,如果没有检查环境变量与自己解压的位置。
vscode插件安装
c++ 、 CMake、CMake Tools
代码测试
目录结构:
hello.h
#ifndef __HELLO_H__
#define __HELLO_H__
#define HELLO "hello, world!"
#endif // __HELLO_H__
main.cpp
#include <iostream>
#include "../include/hello.h"
using namespace std;
int main(void)
{
cout << "Hello, world!" << endl;
cout << HELLO << endl;
return 0;
}
CMakeLists.txt
#CMake 最低版本号要求
cmake_minimum_required(VERSION 3.0.0)
#指定工程名
project(main VERSION 0.1.0)
#指定C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
#指定头文件所在的路径
include_directories(${PROJECT_SOURCE_DIR}/include)
#在 ${PROJECT_SOURCE_DIR}/src 路径下搜索.cpp源文件
aux_source_directory(${PROJECT_SOURCE_DIR}/src ALL_SRCS)
#查找当前目录下的所有源文件
#并将名称保存到 DIR_SRCS 变量
aux_source_directory(. DIR_SRCS)
#生成可执行文件 main.exe
add_executable(main ${ALL_SRCS})
在test目录下,
mkdir build
cd build
cmake -G "MinGW Makefiles" ../ # 生成Makefile文件
mingw32-make
想要使用 make 也能编译。需要找到将bin目录下的mingw32-make.exe 复制一份 重新命名为make即可