03 安装gcc编译环境,scons编译程序小试牛刀

news/2024/10/30 23:25:51/
  1. 安装mingw 我的电脑已经安装过,下面主要说下配置环境

  1. 我们将mingw的路径和scons的虚拟环境路径添加到临时的环境变量,这样做的好处是使用的时候添加,不与其它版本的全局的环境变量冲突。后期我编译ARM程序时把gcc临时环境变量改为arm-gcc路径即可。

  1. 写一个bat脚本c_c++_env.bat,内容如下

@echo on
@echo run in cmd.exe
@echo off@echo display current path:
@set current_path=%~dp0
@echo %current_path%
set path=e:\tools\miniconda3\envs\embed;E:\Qt\Tools\CMake_64\bin;E:\Qt\Tools\Ninja;E:\Qt\Tools\mingw1120_64\bin
@echo

因为我安装过QTE6,它的构造环境是cmake+Ninja,编译环境是mingw。我把这些全部设置成我的临时环境变量。

暂时我们不讲cmake+Ninja,我的scons构造工具安装到虚拟环境embed,所以我把他的路径也设置为临时环境变量。

  1. 把这个bat批处理文件在cmd.exe里运行。

我这里推荐一个终端管理工具ConEmu,它可以管理多个终端如下图

具体 ConEmu的使用请网络搜索。

  1. 把c_c++_env.bat 设置成在ConEmu中启动

  1. 启动 C_C++_env终端

  1. 在终端中检查各工具是否安装正常

  1. 编写一个helloworld代码 hello.c

#include <stdio.h>
void main(void)
{printf("hello,world\r\n");
}
  1. 使用gcc直接简单编译

gcc hello.c //编译
a.exe      //运行输出 hello,world
  1. 使用SCons构建hello.c编译规则

在hello.c同目录下创建文件 SConstruct ,注意:没有后缀。

SConstruct文件内容如下:

Program('hello.c')
  1. 在终端执行 命令

scons

执行hello.exe

到目前为止,一个最简单的scons构造规则完全结束。

代码编辑器我使用Visual Code 我只使用它的编辑功能,编译在终端中执行scons

总结一下:

  1. 安装gcc 环境,设置临时环境变量

  1. 安装scons环境,设置scons临时环境变量

  1. 编写hello.c源代码

  1. 编写 SConstruct 构造器文件 调用 Program('hello.c'),指定要编译的源代码文件

  1. 执行scons

  1. 运行hello.exe 查看结果


http://www.ppmy.cn/news/33032.html

相关文章

Unity自带类 --- Time类

1.在Unity中&#xff0c;自己写的类&#xff08;脚本&#xff09;的名字不能与Unity已有的类的名字相同&#xff0c;如果相同的话就会导致一个错误 --- 当我们在脚本中想调用Unity自带的类的时候&#xff0c;我们只能够调用到自己写的那个与其重名的类&#xff08;就近原则调用…

第一个 Qt 程序

第一个 Qt 程序 “hello world ”的起源要追溯到 1972 年&#xff0c;贝尔实验室著名研究员 Brian Kernighan 在撰写 “B 语言教程与指导(Tutorial Introduction to the Language B)”时初次使用&#xff08;程序&#xff09;&#xff0c;这是目前已 知最早的在计算机著作中将…

【深度强化学习】(8) iPPO 模型解析,附Pytorch完整代码

大家好&#xff0c;今天和各位分享一下多智能体深度强化学习算法 ippo&#xff0c;并基于 gym 环境完成一个小案例。完整代码可以从我的 GitHub 中获得&#xff1a;https://github.com/LiSir-HIT/Reinforcement-Learning/tree/main/Model 1. 算法原理 多智能体的情形相比于单智…

在visual studio 2022 C++中配置最新版OpenCV和可能错误解决方案

前面我们写了一篇博文有关在C#中配置OpenCV&#xff0c;但C#版本的OpenCV的学习资源相对较少&#xff0c;C版的和Python版的比较多。这里先说说C版的如何配置吧&#xff01;总共完成四步即可使用起来。 文章目录一、下载并安装OpenCV1、下载OpenCV2、安装OpenCV二、配置环境1、…

容器的老祖宗LXC和Docker的关系

一、什么是LXC&#xff1f; LXC&#xff08;Linux Container的缩写&#xff09;是一个基于Linux内核的容器虚拟化技术&#xff0c;它提供了一种轻量级、快速、简便的方式来创建和管理系统容器。与传统虚拟化技术不同&#xff0c;LXC并不会模拟硬件&#xff0c;而是利用Linux内…

格式化输出流及转义

格式化输出流大全格式化输出流操作std::fixed以小数点模式输出浮点数std::scientific以科学计数法输出浮点数std::defaultfloat以默认方式输出浮点数std::setprecision设置小数精度&#xff0c;例如设置为2&#xff0c;则精度为2std::dec以十进制输出std::hex以十六进制输出std…

蓝桥杯嵌入式第四课--定时器

前言蓝桥杯对于定时器这部分的考察主要集中在定时器中断、PWM输出以及输入捕获三个方面&#xff0c;本节课着眼于应用&#xff0c;介绍一下定时器的使用。定时器中断一、基础概念对没接触过定时器的新手来说&#xff0c;如果想要快速上手定时器的使用&#xff0c;首先要先对定时…

GPT-4技术报告

摘要 链接&#xff1a;https://cdn.openai.com/papers/gpt-4.pdf 我们汇报了GPT-4的发展&#xff0c;这是一个大规模的多模态模型&#xff0c;可以接受图像和文本输入并产生文本输出。虽然在许多现实场景中&#xff0c;GPT-4的能力不如人类&#xff0c;但它在各种专业和学术基…