C语言基础系列【2】开发环境搭建

选择合适的编译器

在C语言或者C++这种编译型语言开发中,编译器是必不可少的工具。它将C语言源代码转换为机器代码,使程序能够在计算机上运行。

常见的C语言编译器包括GCC(GNU Compiler Collection,GNU编译器套件)、ClangMSVC(Microsoft Visual C++ Compiler)等,我这里推荐大家使用Clang或者MSVC编译器,下面我简单介绍如何安装和配置Clang编译器。

安装与配置Clang编译器

Clang是一个开源的编译器,功能相当强大,提供了快速、安全、可靠的编译服务。Clang支持多种编程语言,包括C、C++和Objective-C等。

很多平台的开发都用的Clang编译器,比如Android、iOS、macOS,还有强大的多平台Google浏览器,也是Clang编译器的产物。

安装Clang

  • 在Windows上安装
    • 可以通过下载并安装LLVM来安装Clang。LLVM是一个编译器工具链项目,Clang是其中的C/C++/Objective-C编译器,详见:https://llvm.org/docs/GettingStartedVS.html
    • 也可以从Microsoft Store下载并安装LLVM相关的应用程序。
  • 在macOS上安装
    • Clang通常已经预装在macOS上,可以通过命令行访问。
    • 如果需要更新或安装特定版本的Clang,可以通过下载并安装Xcode Command Line Tools来实现。
  • 在Linux上安装
    • 在大多数Linux发行版上,可以通过包管理器(如apt、yum等)来安装Clang。

配置Clang

Clang的配置通常比较简单,因为它是一个命令行工具,只需要在命令行中指定源代码文件和输出文件即可。例如,要编译一个名为hello.c的C语言源文件,可以使用以下命令:

clang hello.c -o hello

这条命令会生成一个名为hello的可执行文件。如果需要在编译过程中添加特定的编译选项,可以在命令后添加相应的选项。例如,要启用优化,可以使用-O2选项:

clang hello.c -o hello -O2

示例代码

下面是一个简单的C语言程序,用于测试Clang编译器的安装和配置是否正确:

#include <stdio.h>int main() {printf("Hello, Clang!\n");return 0;
}

将上述代码保存为hello.c文件,然后在命令行中使用Clang进行编译和运行:

clang hello.c -o hello
./hello

如果一切正常,你应该会在屏幕上看到“Hello, Clang!”的输出。

使用IDE(Visual Studio、VSCode、Clion)

集成开发环境(IDE)是一种集成了代码编辑器、编译器、调试器等工具的软件环境,可以大大提高开发效率。

有许多优秀的IDE可供选择,包括Visual Studio、VSCode(Visual Studio Code)和Clion等。

Visual Studio

Visual Studio是微软开发的一款功能强大的IDE,支持多种编程语言,包括C/C++。它提供了丰富的调试工具、代码分析工具、项目管理工具等,非常适合大型项目的开发。

可以这样说,Windows平台如果要开发C语言或者C++,一定要安装Visual Studio,因为它不只是个IDE,通过Visual Studio,可以安装很多必要的开发环境套件。

安装与配置

  • 下载并安装最新版本的Visual Studio。https://visualstudio.microsoft.com/zh-hans/vs/community/
  • 在安装过程中,选择“Desktop development with C++”,这将安装C/C++编译器和相关的开发工具。
  • 安装完成后,打开Visual Studio并创建一个新的C/C++项目,然后编写和编译代码。

VSCode(个人常用)

VSCode也是微软开发的,它是一款轻量级的、跨平台的IDE,支持多种编程语言,其中包括C/C++。它提供了丰富的扩展和插件,可以方便地定制开发环境。

安装与配置

  • 下载并安装最新版本的VSCode。https://code.visualstudio.com/
  • 在VSCode中安装C/C++扩展(由Microsoft提供)。
  • 配置编译任务。可以通过在.vscode文件夹中创建tasks.json文件来定义编译任务。
  • 配置调试器。可以通过在.vscode文件夹中创建launch.json文件来配置调试器。
  • 编写代码,并使用快捷键或命令面板中的命令来编译和调试代码。

Clion

Clion是JetBrains开发的一款专门用于C/C++开发的IDE。它提供了强大的代码分析和重构工具、智能代码补全、跨平台支持等功能。

安装与配置

  • 下载并安装最新版本的Clion。
  • 在安装过程中,选择适当的编译器(如GCC、Clang等)进行配置。
  • 打开Clion并创建一个新的C/C++项目,然后编写和编译代码。

示例代码

无论是在Visual Studio、VSCode还是Clion中,我们都可以使用以下简单的C语言程序来测试IDE的配置是否正确:

#include <stdio.h>int main() {printf("Hello, IDE!\n");return 0;
}

在IDE中编写上述代码,然后按照各自的编译和运行步骤来测试程序的输出。如果一切正常,你应该会在屏幕上看到“Hello, IDE!”的输出。

作者介绍

程序喵大人

  • 35- 资深C/C++/Rust/Android/iOS客户端开发
  • 10年大厂工作经验
  • 嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手
  • 《C++20高级编程》《C++23高级编程》等多本书籍著译者

C++训练营

专为校招、社招3年工作经验的同学打造的1V1 C++训练营,量身定制学习计划、每日代码review,简历优化,面试辅导,一条龙服务,已帮助多名学员获得offer!训练营介绍

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/69125.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

108,【8】 buuctf web [网鼎杯 2020 青龙组]AreUSerialz

进入靶场 <?php // 包含 flag.php 文件&#xff0c;通常这个文件可能包含敏感信息&#xff0c;如 flag include("flag.php");// 高亮显示当前文件的源代码&#xff0c;方便查看代码结构和逻辑 highlight_file(__FILE__);// 定义一个名为 FileHandler 的类&#x…

《redis哨兵机制》

【redis哨兵机制导读】上一节介绍了redis主从同步的机制&#xff0c;但大家有没有想过一种场景&#xff0c;比如&#xff1a;主库突然挂了&#xff0c;那么按照读写分离的设计思想&#xff0c;此时redis集群只有从库才能提供读服务&#xff0c;那么写服务该如何提供&#xff0c…

【赵渝强老师】Spark RDD的依赖关系和任务阶段

Spark RDD彼此之间会存在一定的依赖关系。依赖关系有两种不同的类型&#xff1a;窄依赖和宽依赖。 窄依赖&#xff1a;如果父RDD的每一个分区最多只被一个子RDD的分区使用&#xff0c;这样的依赖关系就是窄依赖&#xff1b;宽依赖&#xff1a;如果父RDD的每一个分区被多个子RD…

开源数据分析工具 RapidMiner

RapidMiner是一款功能强大且广泛应用的数据分析工具&#xff0c;其核心功能和特点使其成为数据科学家、商业分析师和预测建模人员的首选工具。以下是对RapidMiner的深度介绍&#xff1a; 1. 概述 RapidMiner是一款开源且全面的端到端数据科学平台&#xff0c;支持从数据准备、…

蓝桥杯备考:二维前缀和算法模板题(二维前缀和详解)

【模板】二维前缀和 这道题如果我们暴力求解的话&#xff0c;时间复杂度就是q次查询里套两层循环最差的时候要遍历整个矩阵也就是O&#xff08;q*n*m) 由题目就是10的11次方&#xff0c;超时 二维前缀和求和的公式&#xff08;创建需要用到&#xff09;f[i][j]就是从&#xf…

3-track_hacker/2018网鼎杯

3-track_hacker 打开附件 使用Wireshark打开。过滤器过滤http,看里面有没有flag.txt 发现有 得到&#xff1a;eJxLy0lMrw6NTzPMS4n3TVWsBQAz4wXi base64解密 import base64 import zlibc eJxLy0lMrw6NTzPMS4n3TVWsBQAz4wXi decoded base64.b64decode(c) result zlib.deco…

第二十章 存储函数

目录 一、概述 二、语法 三、示例 一、概述 前面章节中&#xff0c;我们详细讲解了MySQL中的存储过程&#xff0c;掌握了存储过程之后&#xff0c;学习存储函数则肥仓简单&#xff0c;存储函数其实是一种特殊的存储过程&#xff0c;也就是有返回值的存储过程。存储函数的参数…

Linux:文件系统(软硬链接)

目录 inode ext2文件系统 Block Group 超级块&#xff08;Super Block&#xff09; GDT&#xff08;Group Descriptor Table&#xff09; 块位图&#xff08;Block Bitmap&#xff09; inode位图&#xff08;Inode Bitmap&#xff09; i节点表&#xff08;inode Tabl…

java求职学习day27

数据库连接池 &DBUtils 1.数据库连接池 1.1 连接池介绍 1) 什么是连接池 实际开发中 “ 获得连接 ” 或 “ 释放资源 ” 是非常消耗系统资源的两个过程&#xff0c;为了解决此类性能问题&#xff0c;通常情况我们 采用连接池技术&#xff0c;来共享连接 Connection 。…

机器学习--2.多元线性回归

多元线性回归 1、基本概念 1.1、连续值 1.2、离散值 1.3、简单线性回归 1.4、最优解 1.5、多元线性回归 2、正规方程 2.1、最小二乘法 2.2、多元一次方程举例 2.3、矩阵转置公式与求导公式 2.4、推导正规方程0的解 2.5、凸函数判定 成年人最大的自律就是&#xff1a…

Docker 部署 ClickHouse 教程

Docker 部署 ClickHouse 教程 背景 ClickHouse 是一个开源的列式数据库管理系统&#xff08;DBMS&#xff09;&#xff0c;主要用于在线分析处理&#xff08;OLAP&#xff09;。它专为大数据的实时分析设计&#xff0c;支持高速的查询性能和高吞吐量。ClickHouse 以其高效的数…

建表注意事项(2):表约束,主键自增,序列[oracle]

没有明确写明数据库时,默认基于oracle 约束的分类 用于确保数据的完整性和一致性。约束可以分为 表级约束 和 列级约束&#xff0c;区别在于定义的位置和作用范围 复合主键约束: 主键约束中有2个或以上的字段 复合主键的列顺序会影响索引的使用&#xff0c;需谨慎设计 添加…

Google C++ Style / 谷歌C++开源风格

文章目录 前言1. 头文件1.1 自给自足的头文件1.2 #define 防护符1.3 导入你的依赖1.4 前向声明1.5 内联函数1.6 #include 的路径及顺序 2. 作用域2.1 命名空间2.2 内部链接2.3 非成员函数、静态成员函数和全局函数2.4 局部变量2.5 静态和全局变量2.6 thread_local 变量 3. 类3.…

【HTML入门】Sublime Text 4与 Phpstorm

文章目录 前言一、环境基础1.Sublime Text 42.Phpstorm(1)安装(2)启动Phpstorm(3)“启动”码 二、HTML1.HTML简介(1)什么是HTML(2)HTML版本及历史(3)HTML基本结构 2.HTML简单语法(1)HTML标签语法(2)HTML常用标签(3)表格(4)特殊字符 总结 前言 在当今的软件开发领域&#xff0c…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.20 傅里叶变换:从时域到频域的算法实现

2.20 傅里叶变换&#xff1a;从时域到频域的算法实现 目录 #mermaid-svg-zrRqIme9IEqP6JJE {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-zrRqIme9IEqP6JJE .error-icon{fill:#552222;}#mermaid-svg-zrRqIme9IEqP…

刷题记录 动态规划-7: 63. 不同路径 II

题目&#xff1a;63. 不同路径 II 难度&#xff1a;中等 给定一个 m x n 的整数数组 grid。一个机器人初始位于 左上角&#xff08;即 grid[0][0]&#xff09;。机器人尝试移动到 右下角&#xff08;即 grid[m - 1][n - 1]&#xff09;。机器人每次只能向下或者向右移动一步。…

HarmonyOS:给您的应用添加通知

一、通知介绍 通知旨在让用户以合适的方式及时获得有用的新消息&#xff0c;帮助用户高效地处理任务。应用可以通过通知接口发送通知消息&#xff0c;用户可以通过通知栏查看通知内容&#xff0c;也可以点击通知来打开应用&#xff0c;通知主要有以下使用场景&#xff1a; 显示…

Unity飞行代码 超仿真 保姆级教程

本文使用Rigidbody控制飞机&#xff0c;基本不会穿模。 效果 飞行效果 这是一条优雅的广告 如果你也在开发飞机大战等类型的飞行游戏&#xff0c;欢迎在主页搜索博文并参考。 搜索词&#xff1a;Unity游戏(Assault空对地打击)开发。 脚本编写 首先是完整代码。 using System.Co…

图论常见算法

图论常见算法 算法prim算法Dijkstra算法 用途最小生成树&#xff08;MST&#xff09;&#xff1a;最短路径&#xff1a;拓扑排序&#xff1a;关键路径&#xff1a; 算法用途适用条件时间复杂度Kruskal最小生成树无向图&#xff08;稀疏图&#xff09;O(E log E)Prim最小生成树无…

车载软件架构 --- 基于AUTOSAR软件架构的ECU开发流程小白篇

我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 简单&#xff0c;单纯&#xff0c;喜欢独处&#xff0c;独来独往&#xff0c;不易合同频过着接地气的生活…