zoukankan      html  css  js  c++  java
  • windows+CMake+mingw 搭建c c++开发环境

    CMake 安装

    CMake 下载

    官方下载地址: https://cmake.org/download/

    cmake下载页面
    cmake下载页面

    选择自己系统(Platform)对应的版本并下载
    这里我们选择Windows win64-x64 Installer: Installer tool has changed. Uninstall CMake 3.4 or lower first!

    CMake 下载完成
    CMake 下载完成

    CMake 安装

    安装时根据自己系统的安全设置,可能会出现如下对话框,不用担心,直接点击 "运行(R)"

    安装时安全警告
    安装时安全警告
    CMake Steup
    CMake Steup
    License
    License

    必须选择同意,否则不能进入下一步

    安装选项
    安装选项
    • 是否添加环境变量,这里我们选择 "Add CMake to the system PATH for all users"
    • 是否创建桌面快捷图标,根据自身情况而定,这个只是创建桌面图标使用方便,并不会对以后的使用造成实质上的影响

    安装路径

    这里选择自己习惯存放程序的路径,我们这里采取默认值

    安装路径
    安装路径

    安装最后确认

    经过前面的操作终于把需要配置的都配置了,下面该程序自己干活了

    安装最后确认
    安装最后确认

    进入安装

    真正开始安装的阶段,这一阶段比较耗时,完全取决于电脑自身的配置高低,系统主要是解压文件和写磁盘

    安装中
    安装中

    安装完成

    恭喜你,终于将CMake安装完成了

    安装完成页面
    安装完成页面

    确认CMake安装

    验证CMake是否成功安装,可以调出CMD窗口,输入cmake,瞧瞧系统会给你说什么,如果出现如下窗口,那么恭喜你没有任何问题。

    CMake安装好
    CMake安装好

    那么万一出现的是如下内容呢

    CMake没安装好
    CMake没安装好

    我们一般有如下处理步骤和处理方法:

    • 1. 确认是新调出CMD窗口再进行的操作
    • 2. 我们可以手动修改系统的环境变量指定CMake的bin目录位置
    系统环境变量 Path
    系统环境变量 Path

    确认如图所示内容在Path中配置,如果没有可以手动输入并确定

    • 3. 待2操作完成后可以再验证,如果解决那么恭喜,如果问题仍存在,那么需要重启系统(一般都能解决了,除非比较低的系统版本可能需要重启)

    mingw

    mingw 下载

    这里给出64系统使用的mingw, https://sourceforge.net/projects/mingw-w64/

    mingw下载完成
    mingw下载完成

    这里其实是下载的一个安装器,具体的安装是通过运行这个安装器来引导安装的

    mingw 安装

    开始运行安装器
    开始运行安装器

    mingw 安装选项

    安装选项
    安装选项

    这里需要做出对应的选择,当然完全默认没有任何问题,我们这里采用默认,继续安装

    mingw 安装位置

    安装位置选择
    安装位置选择

    这里有坑,我们先入坑, 继续安装

    mingw 安装中

    安装中
    安装中

    安装器需要从网上下载所需要的文件,这一步耗时较长

    mingw 安装完成

    安装完成
    安装完成

    环境变量设置

    同CMake的一样,mingw安装完后自动了设置环境变量,你也可以通过运行其安装目录下的mingw-w64.bat来进入运行环境

    mingw-w64.bat
    mingw-w64.bat

    验证mingw环境是否设置好,同样新调出CMD窗口,输入gcc命令,出入如下信息则表示安装没有问题,否则请参照CMake配置环境变量的方式来解决。

    gcc 命令
    gcc 命令

    CMake+mingw 实例

    我们安装完环境后来个实例运行下吧

    • 编写源码文件
      来个宇宙最著名的程序吧
    1#include <stdio.h>
    2int main()
    3
    {
    4 printf("hello ");
    5 return 0;
    6}
    • 编写CMake文件
    1cmake_minimum_required(VERSION 3.0)
    2project(Hello)
    3set(SOURCE main.cpp)
    4add_executable(${PROJECT_NAME} ${SOURCE})
    • 生成Make file
    1mkdir build
    2cd build
    3cmake -G"Unix Makefiles" ../

    很不幸,这一步会出问题

    1CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles".  CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build tool.
    2CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
    3CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
    4-- Configuring incomplete, errors occurred!
    5See also "D:/tmp/build/CMakeFiles/CMakeOutput.log".

    意思就是不能生成Unix Makefiles,这是缺少make程序造成的,
    解决方法就是找到mingw安装目录下mingw32-make.exe拷贝一份并重命名为make.exe

    make
    make

    再运行cmake -G"Unix Makefiles" ../

     1$ cmake -G"Unix Makefiles" ../
    2-- The C compiler identification is GNU 7.2.0
    3-- The CXX compiler identification is GNU 7.2.0
    4-- Check for working C compiler: C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/gcc.exe
    5-- Check for working C compiler: C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/gcc.exe -- works
    6-- Detecting C compiler ABI info
    7-- Detecting C compiler ABI info - done
    8-- Detecting C compile features
    9-- Detecting C compile features - done
    10-- Check for working CXX compiler: C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/c++.exe
    11-- Check for working CXX compiler: C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/c++.exe -- works
    12-- Detecting CXX compiler ABI info
    13-- Detecting CXX compiler ABI info - done
    14-- Detecting CXX compile features
    15-- Detecting CXX compile features - done
    16-- Configuring done
    17-- Generating done
    18-- Build files have been written to: D:/tmp/build

    这样就对了

    • 编译
    1make

    什么,又有问题

    1$ make
    2/usr/bin/sh: -c: line 0: syntax error near unexpected token `('
    3/usr/bin/sh: -c: line 0: `C:/Program Files (x86)/mingw-w64/i686-7.2.0-posix-dwarf-rt_v5-rev1/mingw32/bin/make -f CMakeFiles/Makefile2 all'
    4make: *** [Makefile:84: all] Error 1

    还记得前面我们安装mingw时说的坑吗,现在我们需要填坑了,文件就是万恶的C:/Program Files (x86),这也好办,将mingw-w64文件夹复制到一个正常的目录吧,比如直接C:/mingw-w64,然后需要修改环境变量

    修改mingw环境变量
    修改mingw环境变量
    1$ make
    2Scanning dependencies of target Hello
    3[ 50%] Building CXX object CMakeFiles/Hello.dir/main.cpp.obj
    4[100%] Linking CXX executable Hello.exe
    5[100%] Built target Hello
    • 运行
    1$ ./Hello.exe
    2hello

    好了,终于成功了

  • 相关阅读:
    Ubuntu 16.09下iptables通过raw表实现日志输出和调试
    CentOS 6.9永久设置静态路由表以及路由表常用设置
    Linux下添加静态路由表设置网关出现SIOCADDRT: Network is unreachable的问题分析
    Linux下使用ISC DHCP可以实现动态推送静态路由表
    Linux下使用ping出现destination is unreachable的问题可能性
    树莓派(Debian)系统开启iptables的raw表实现日志输出
    MySQL时间戳与日期互转
    树莓派(Debian)系统设置了静态IP之后还会获取动态IP的问题解决(scope global secondary eth0)
    Linux下同一网段内的IP中两台主机通信不经过路由器(ARP)(转)
    OpenWrt包管理软件opkg的使用(极路由)
  • 原文地址:https://www.cnblogs.com/herelsp/p/8679200.html
Copyright © 2011-2022 走看看