文档章节

MinGW

KuangCaibao
 KuangCaibao
发布于 2015/04/09 22:42
字数 478
阅读 453
收藏 0

什么是MinGW,自行百度或谷歌。

安装了MinGW后,需要将安装目录下的bin文件夹添加到系统的环境变量path中。下面给出bin目录下的可执行程序。

$ ls -al
...
... ... ... gcc.exe // C 编译器
... ... ... g++.exe // C++ 编译器
... ... ... mingw32-make.exe  // makefile文件执行

可以看到将bin路径放到path变量中后,我们可以在任意时候使用该目录下的命令。

现在假定在  E:/CC 文件夹下创建 hello.cpp 和 Makefile 文件,使用Makefile是在Windows下用MinGW的最重要的理由,至少对于我来说。

// Makefile
objs = hello.o
cc = g++

edit: $(objs)
  $(cc) -o edit $(objs)
  
hello.o: hello.cpp
  $(cc) -c hello.cpp
  
clean:
  rm $(objs) target.exe

这样我们可以使用 mingw32-make 命令来执行我们的Makefile文件。这里可以看到 mingw32-make.exe 文件名太长,并且不好记,我们可以将其重命名为 make.exe 这样就与Linux下的make命令保持一致了。

E:\CC> make
g++ -c hello.cpp
hello.cpp:9:2: warning: no newline at end of file
g++ -o edit hello.o

Makefile编译成功,并且在CC目录下生成了 hello.o 和 edit.exe 文件,执行 edit.exe 可以输出 Hello World,到这里是成功的。但是当我们执行 make clean 时就不行了。

E:\CC>make clean
rm hello.o edit.exe
process_begin: CreateProcess(NULL, rm hello.o edit.exe, ...) failed.
make (e=2): 系统找不到指定的文件。
make: *** [clean] Error 2

可以看到,系统找不到我们需要删除的文件。但是如果将clean下的操作改为

clean:
  echo %CD%

输出还是 E:\CC,但是执行rm操作的时候没有发现需要删除的文件,个人怀疑是不是执行操作的时候系统的工作目录不是E:\CC。这个问题在Linux Shell下就不会出现。

因为我在Win7下安装了msysgit,当我们在 msysgit 的 bash 环境中执行 make clean操作的时候,删除操作是成功的。why?

© 著作权归作者所有

上一篇: maven - 基础
下一篇: C++ 类继承
KuangCaibao
粉丝 2
博文 21
码字总数 10699
作品 0
武汉
程序员
私信 提问
MinGW在Win7下的按装、设置和使用 (Lu Hongling)

1.引言 MinGW is the abbreviation of “Minimalist GCC Windows”. 简单地说, MinGW就是windows下的GCC [2]. 在windows下按装了MinGW, 就按装了C/C++, Fortran, 等语言编译器套间. MinGW是完...

luhongling
2012/08/19
4K
0
c/c++在windows系统下的环境配置

MinGw 是 Minimal GNU on Windows 的缩写,允许在 GNU/Linux 和 Windows 平台生成本地的 Windows 程序而不需要第三方运行时库。本文主要介绍 MinGw 的安装和使用。 (一)安装 1.下载 min-gw 安...

鑫_ping
2017/10/25
52
0
CLION 不能运行

下面是报错 "C:\Program Files (x86)\JetBrains\CLion 2016.1.3\bin\cmake\bin\cmake.exe" --build C:\Users\Administrator\.CLion2016.2\system\cmake\generated\demo-df821b8e\df821b8e\De......

笋尖_c
2016/07/22
2.4K
1
eclipse3.7.2+cdt+mingw

开发环境 1、 MinGW 下载并安装(参考: http://blog.csdn.net/hemingwang0902/article/details/6889595) MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GN...

lanfogz
2014/10/02
0
0
python---解决“Unable to find vcvarsall.bat”错误

今天在安装reportlab时老是发生Unable to find vcvarsall.bat的错误,上网找了一下,在eddsn找到了“Unable to find vcvarsall.bat” error when trying to install rdflib这么一篇文章,解决...

durban
2012/04/19
82.2K
14

没有更多内容

加载失败,请刷新页面

加载更多

好程序员Java教程分享Zookeeper基本原理与运用场景

好程序员Java教程分享Zookeeper基本原理与运用场景一、什么是Zookeeper? zookeeper是一个分布式的一致性协调服务。 换句话说,也可以把zookeeper看成一个小型的分布式文件系统。但是和FastD...

好程序员官网
11分钟前
3
0
mysql表情符

1 修改表字段为utf8md4 ALTER table property_info MODIFY `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL 2 MySQL数据库服务器配置文件mysqld.cn......

干死it
31分钟前
2
0
正则表达式的基本语法

本文摘自LTP.NET知识库。 正则表达式的形式一般如下: /love/ 其中位于“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。 用户只要把希望查找匹配对象的模式内容放入“/”定界符之...

木庄
33分钟前
3
0
java 框架有哪些?

十大常用框架: 一、SpringMVC 二、Spring 三、Mybatis 四、Dubbo 五、Maven 六、RabbitMQ 七、Log4j 八、Ehcache 九、Redis 十、Shiro 延展阅读: 一、SpringMVC Spring Web MVC是一种基于J...

java框架开发者
33分钟前
6
0
细谈Mysql事务

文章原创于公众号:程序猿周先森。本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号。 上一篇着重谈到了MySQL锁的概念,里面谈到了事务的概念,其实大部分开发者对于事务肯定不陌生,...

程序猿周先森
42分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部