今天一个下午都在做一件简直耻辱play的事情,论文没看,程序没写,玩了一个下午的编译器。。。心塞(逃。。。

  言归正传,今天要讲在windows下,使用Cmake和MInGW.

 1.g++

  MinGW的安装需要首先下载安装器。

  然后将安装目录设置成环境变量,以便于cmd在任何目录下都能调用里面的程序。

  在安装完成后,在cmd中依次执行:

mingw-get install gcc
mingw-get install g++
mingw-get install gdb
效果大概是下面这样:
F:\C++\cmake\source>g++ main.c -o helloF:\C++\cmake\source>ls
CMakeLists.txt  bin  hello.exe  main.cF:\C++\cmake\source>hello.exe
Hello World!/n

如果你足够细心会发现一个神奇的语句:ls

显然windows的shell是不支持这个语句的,这个功能属于MinGW的副产品。

在安装gcc的时候,不知道怎么还安装了一个msys的文件夹。顺手把它包含到系统环境变量Path中,windows的shell就支持linux的语句了。

至此为止,我们可以使用g++工具编译helloworld了,但是。。。。也就能写个helloworld一类的程序吧。。。。。

2.CMake

  其实我对CMake并不陌生,最早相识于PCL,后来也用它配置过OpenCV,再后来还配置过VTK,QT。我真没想到今天在CMake翻了船搞了一下午。。。。。

  起因是这样的,像往常一样写好source file.cpp 和 CMakeLists.txt,然后调CMake对程序进行构建,为了能让构建能和ST3尽量符合,我选了之前安装的MinGW作为编译器,而不是以vs2010作为构建输出结果。结果是这样的。。。

F:.
└─source└─bin└─CMakeFiles//这是我的文件结构,source 文件夹下放有源文件。我在bin下执行的cmakeF:\C++\cmake\source\bin>cmake .. -G"MinGW Makefiles"

CMake Error: CMake was unable to find a build program corresponding to "MinGW Ma
kefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a differe
nt build tool.
CMake Error: CMake was unable to find a build program corresponding to "MinGW Ma
kefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a differe
nt build tool.
CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage
CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
-- Configuring incomplete, errors occurred!

0.0居然报错了。。。。好像说MinGW的makefiles有点问题,上SS一查,好像是没装make。

WTF,make不是应该和gcc在一起的么,怎么还要单独安装,结果跑去SF一看,还真是单独的。。

那赶紧下一个然后解压合并到 C:\MinGW 里去。这里是下载地址

ok,然后再重新使用cmake来构建,结果如下:

F:\C++\cmake\source\bin>cmake .. -G"MinGW Makefiles"
-- The C compiler identification is GNU 4.8.1
-- The CXX compiler identification is GNU 4.8.1
-- Check for working C compiler: C:/MinGW/bin/gcc.exe
-- Check for working C compiler: C:/MinGW/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/MinGW/bin/g++.exe
-- Check for working CXX compiler: C:/MinGW/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: F:/C++/cmake/source/binF:\C++\cmake\source\bin>make
Scanning dependencies of target hello
[ 50%] Building C object CMakeFiles/hello.dir/main.c.obj
[100%] Linking C executable hello.exe
[100%] Built target helloF:\C++\cmake\source\bin>hello.exe
Hello World!/n

转载于:https://www.cnblogs.com/ironstark/p/5033856.html

CMake with WinMinGW相关推荐

  1. TVM cmake示例展示

    TVM cmake示例展示 本文展示tvm/cmake中config.cmake,tvm/cmake/module/LLVM.cmake,tvm/cmake/module/CUDA.cmake,tvm ...

  2. VScode配置CMAKE文件

    创建一个vscode文件 记得一定要创建一个build文件夹,因为cmake编译过程中产生的中间文件会放到build文件夹中. 打开VScode 配置文件 launch.json {"ver ...

  3. PCL1.9的PCLConfig.cmake文件找不到eigen等外部依赖

    PCL1.9的PCLConfig.cmake文件找不到eigen等外部依赖 由于需要用到PCL中on_nurbs模块做拟合,但是ros自带的pcl中没有该模块.所以源码安装了PCL 1.9,但是在使用 ...

  4. ++项目 cmake头文件路径_CMAKE入门实战

    0.导语 最近做的项目使用CLION构建,而这个采用CMakeLists.txt管理,因此为了更好的学习,故找到了一篇大牛级别的入门文章,有文章有代码,本文是花了一点时间把这篇文章学习后的重要点记录吧 ...

  5. cmake java_JNI系列之AS支持CMake了

    写在前面 Android Studio 2.2+已支持CMake编译,与以前NDK-Build方式相比方便了不少,本文旨在引导大家在AS2.2+下一步一步建立JNI工程进行开发,并假设大家已经对JNI ...

  6. cmake开发环境 linux qt_一步步搭建CMake+QT+VTK+BOOST开发环境

    开发环境: 1.可以迅速处理大量并发网络数据包,ASIO库和winpcap 4.1.3库; 2.处理与显示点云模型数据,使用VTK 8.2.0库; 3.项目使用CMake+VC2017编译,GUI使用 ...

  7. 在Ubuntu18.04下的Cmake使用记录

    (1)首先是安装cmake.命令如下: sudo apt-get install cmake (2)创建一个源程序,1.cpp如下:(1.cpp的位置是位于hoem/ysh/code) #includ ...

  8. CMake结合PCL库学习(2)

    紧接着上一篇文章 对于PCL 库中的各个模块之间是有相互依赖关系的 其中Common模块是最基础的模块,其中是定义各种数据结构的头文件,所以Common这个模块是不需要依赖性响的,但是IO 模块就是需 ...

  9. CMake结合PCL库学习(1)

    经常会有有人问到CMake的学习的问题,而且网上也有很多博客是介绍学习CMake 的用法,但是我觉的学习不用这样死板,用到了就顺便学习一下,也就是边做边学,由浅入深,慢慢的就会熟悉了,这个学习的过程中 ...

最新文章

  1. 两种高性能I/O设计模式(Reactor/Proactor)的比较
  2. SqlServer 2014还原数据库时提示:无法在已有的上还原文件,请重新发出RESTORE语句,用WITH REPLACE来覆盖原先存在的文件
  3. 在springboot中使用h2数据库
  4. jekyll网站上传服务器,jekyll 高效搭建个人博客之完整流程
  5. linux 单步启动_Linux系统的启动
  6. restful风格使用小例
  7. 重磅!深度学习的顶级会议ICLR 2020 数据图文详解
  8. 影片模块 Dubbo 服务聚合
  9. android java静态库,Android make 中变量记录
  10. 自上而下渐显图片的CSS3实现
  11. C++二分查找,时间复杂度是O(logn)
  12. 云计算运维累不累_要做好云计算运维管理,一定要注意这3个要点
  13. MySQL 获取物理表的主键字段
  14. 5. Document open() 方法
  15. iPhone手机微信下载的文档传输到win10系统桌面
  16. 【数据分析】销售案例——杜邦分析法
  17. 04_python爬虫爬取超星回放
  18. VUE实现长时间未操作退出登录
  19. 欢迎高校使用云创大数据的高质量大数据和人工智能免费直播授课!
  20. JavaScript倒计时算法(计算剩余多少天)实现

热门文章

  1. SharePoint 2010新特性Ribbon
  2. 有规律字段拆分(2005的解决方案)
  3. I am late!
  4. ​使用高斯过程回归指导网络轻量化
  5. “开发人”注意了!百度AI快车道成都站:来了就不想走的活动
  6. Facebook 神经上采样技术,用于实时渲染
  7. 弱监督深度学习图像分割综述
  8. 清华计算机复试线2020,清华大学2020年研考复试线公布,复试时间待定
  9. excel相乘再相加_简单的工作花几小时,学会几个Excel技巧,几秒钟解决
  10. 不是程序员看不懂的21个梗,当你改错一行代码的时候...