zoukankan      html  css  js  c++  java
  • GCC学习(1)之MinGW使用

    GCC学习(1)之MinGW使用

    因为后续打算分享一些有关GCC的使用心得的文章,就把此篇当作一个小预热,依此来了解下使用GNU工具链(gcc、gdb、make等)在脱离IDE的情况下如何开发以及涉及的编译相关的原理。当然,这方面的内容开发环境不限于使用MinGW,像之前介绍过的Cygwin,或者直接在Linux系列的操作系统上,一般都自带GUN工具。

    作者:AlphaGL。版权所有,欢迎保留原文链接进行转载

    MinGW介绍

    MinGW全称Minimalist GNU for Windows,也是从Cygwin发展而来的,但更精简。是一套将GCC和GNU Binutils移植到Windows平台的编译工具集。支持编译C、C++、Objective-C、Fortran及Ada等语言(同时,也是GCC支持的语言)。同时,使用MinGW编译出来的程序不需要额外的第三方DLL就能直接在Windows下运行。以上介绍均来自MinGw维基百科,简单来说,就是提供了一套在Windows平台也能使用GUN的工具。

    MinGW官网:
    http://www.mingw.org/

    MinGW下载地址:
    http://sourceforge.net/projects/mingw/

    MinGW安装

    MinGW的安装步骤很简单。如图:


    分别把mingw-developer-toolkitmingw32-basemingw32-gcc-g++msys-base标记下,其它的可选。


    在Installation->Apply Changes,应用下,就会自动安装所选的包了。

    配置环境变量

    例如:我的MinGW安装在D:\env\MinGW。如图:


    并把MINGW_HOMEMINGW_MAKE_HOME添加到Path中。%MINGW_HOME%\bin;%MINGW_MAKE_HOME%\bin;


    在Windows终端中,输入gcc --versionmake --version,能输出相应的版本信息,则证明配置成功了。

    MinGW使用

    新建hello_mingw.chello.hhello.cmakefile,代码如下:
    hello_mingw.c

    #include <stdio.h>
    #include "hello.h"
    
    int main()
    {
      printf("hello mingw\n");
      test();
      return 0;
    } 
    
    

    hello.h

    #include <stdio.h>
    
    void test();
    
    

    hello.c

    #include "hello.h"
    
    void test()
    {
      printf("this is a test");
    }
    
    

    makefile

    hello.exe:hello_mingw.o hello.o
    	gcc hello_mingw.o hello.o -o hello
    
    hello_mingw.o:hello_mingw.c
    	gcc -c hello_mingw.c
    
    hello.o:hello.c hello.h
    	gcc -c hello.c
    
    clean:
    	rm *.exe *.o
    

    在Windows命令终端中执行如下命令:

    至此成功生成hello.exe,运行并执行了正确的输出。

    以上便是借助MinGW来熟悉gcc以及makefile的使用的一个小实践。后续还有更多关于gcc相关的内容分享,敬请期待。

    技术交流QQ群:528655025
    作者:AlphaGL
    出处:http://www.cnblogs.com/alphagl/
    版权所有,欢迎保留原文链接进行转载

  • 相关阅读:
    如何重启apache2服务
    ubuntu设置不睡眠的方法
    linux环境下安装varnish
    PHP 开发者该知道的 5 个 Composer 小技巧
    dl, dt, dd /line-height /loat /vertical-align 问题
    针对老式浏览器(主要是IE6、7、8)的css3-mediaqueries.js自适应布局
    三栏网页宽度自适应布局方法
    vue.js开发环境搭建
    vue.js之个人总结
    less学习:基础语法总结
  • 原文地址:https://www.cnblogs.com/alphagl/p/6234895.html
Copyright © 2011-2022 走看看