windows环境下使用gcc编译器运行源码(一)

一、gcc编译器的下载及安装

1、下载
  • 下载GCC需要外网,笔者在内网找了两个小时,才找到一个可以用的,大家可以自行去下载,https://www.jb51.net/softs/156775.html,选择最下方的普通下载就不会下载一些莫名其妙的下载器和绑定插件,这个版本是3.4.0版本,虽然不是最新的,但还是够用了。
2、安装和配置环境变量
  • 在上述网站下载的gcc无需安装,只需要解压到需要的文件夹即可,如图为gcc解压之后的文件目录。

gcc软件目录
之后配置好环境变量就可以使用gcc编译器了,设置环境变量的方法:

  • 在电脑上点击右键–>属性–>高级系统设置–>环境变量–>点击path–>编辑–>新建–>加入gcc软件目录中bin的绝对地址,OK。到此,在命令行使用gcc命令进行编译和运行代码了。
    在这里插入图片描述
    在这里插入图片描述

二、使用gcc编译器

3、使用命令行运行简单的helloWord
  • 首先创建一个简单的hello程序,名为helloword.c,代码如下。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int chrtodec(char chr);
/**
 * @brief 从键盘输入的元素作为入口参数运行代码
 * @param argc  表示从键盘输入的数组元素的个数
 * @param argv[]  表示键盘输入数组的指针,存放的是每个数组元素的地址
 * @return int 
 */
 int main( int argc , char* argv[]) 
 {
     printf("hello word!\n");
     for(int i=1;i<argc;i++){
        if((*argv[i])<(*argv[i+1]))
        {
            printf("%d\n",chrtodec(*argv[i]));
        }
        else{
            printf("the order is right!\n");
        }
     }
     return 0;
 }

int chrtodec(char chr)
{
 
	int value=0;
 	//先全部将小写转换为大写
 	if((chr>='a')&&(chr<='z'))
 			chr=chr-32;
 	//将字符转化成相应的数字
	if((chr>='0')&&(chr<='9'))
			value=chr-48;
 	else if((chr>='A')&&(chr<='Z'))
 			value=chr-65+10;
	return value;
}
  • 在命令行中编译helloword.c,首先查看helloword.c源代码的地址如下图:

helloword.c文件地址

  • 在命令行中输入gcc命令,编译helloeord,生成可执行文件a.exe,如图:

在这里插入图片描述
在这里插入图片描述

  • 在命令行中运行可执行文件a.exe

在这里插入图片描述在这里插入图片描述

4、通过gcc运行含链接的helloword
  • 如图创建了max.c、max.h、exchage.c、exchage.h 源文件(max函数功能返回两个整数的最大值,exchage函数将两个数交换位置并返回,这里就不展示如此简单的代码了)并且在helloword中的main函数里面实现了调用,在使用gcc编译的时候需要将几个文件都进行编译:
  • gcc -c helloword.c max.c exchage.c 表示编译c文件并声称对应的o文件;
  • gcc -o hello helloword.o max.o exchage.o 表示通过o文件生成可执行文件hello.exe
    在这里插入图片描述
  • 命令行gcc命令输入:

在这里插入图片描述

  • 运行可执行文件hello.exe
    在这里插入图片描述
  • 当然在源文件众多的情况下,我们不可能这样一个一个的去编译,因此就有了Makefile,后面会对这部分进行介绍。
5、编者的话
  • 随便说点:刚开始只是老大让我去找一个二维码纠错算法的源码,然后我找到的是一个官方库,类似于zxing库,只不过是c语言版本,然后他就让我验证一下其中的算法部分,当时我就懵了,这个庞大的一个工程,我如何去验证其中的一小部分,然后我打开了IDE,VS2019,编译运行,很多bug,有些是IDE的问题,有些是源码的问题,搞了半天才运行起来,然后整个项目运行了,我并不知道如何去验证我需要算法部分,然后从老大那里学到了这种方法,突然想起来一句话,初学者离开了IDE就啥也不认识,通过这样的方法可以帮助自己理解程序的编译、链接和运行,同时在分析源码的过程中,只需要将自己需要的接口提出来,新建一个mian函数,就可以实现对源码的验证。记录于此,分享给大家。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值