背景
最近的项目需要从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即可