扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!
成都创新互联是一家集网站建设,盐津企业网站建设,盐津品牌网站建设,网站定制,盐津网站建设报价,网络营销,网络优化,盐津网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。作者|慕课网精英讲师 张磊
今天这篇文章我们来聊聊C 语言的编译器。
1. C 语言编译器每个语言都需要编译器,甚至包括可以直接操作 CPU 内部寄存器的汇编语言。编译器的作用就是将我们用接近人类自然语言编写的程序翻译成计算机可以直接执行的二进制文件。
其实使用二进制是人类在计算机发明过程中妥协于工程实践的一个行为。因为从最高效率的数字进制来说,三进制其实更为有效率,但是实现起来不那么容易。
C 语言的编译器有非常多种,下面我们列举了一些,供大家参考。
编译器 | 编译器作者 | 支持的操作系统 | 是否有相关的集成开发环境 | 授权许可类型 |
AMPC | Axiomatic Solutions Sdn Bhd | Windows,Unix & Other | Yes | Proprietary |
Amsterdam Compiler Kit | Andrew Tanenbaum and Ceriel Jacobs | Unix & Other | No | BSD |
CCS C Compiler | CCS, Inc. | Windows,Unix & Other | Yes | Proprietary |
Clang | Low-Level Virtual Machine | Windows,Unix & Other | No | BSD |
DMS Software Reengineering Toolkit | Semantic Designs | Windows,Unix & Other | No | Proprietary |
GCC C | GNU Project | Windows,Unix,IBM mainframe, AmigaOS, VAX/VMS, RTEMS | No | GPL |
RCC (RCOR C Compiler) | Rodrigo Caetano (rcor) | Windows,Unix | No | GPL |
Interactive C | KISS Institute for Practical Robotics | Windows, Unix, Mac, Linux, IRIX, | Solaris, SunOS | No |
LabWindows/CVI | National Instruments | Windows,Unix & Other | Yes | Proprietary |
lcc | Chris Fraser and David Hanson | Windows,Unix & Other | Windows only | Freeware (source code available for non-commercial use) |
Mark Williams C | Mark Williams Company | Windows,Other | Yes | Proprietary |
Microsoft C | Microsoft | Windows | Yes | Proprietary |
Nwcc | Nils Weller | Windows,Unix,Other | No | BSD |
Open64 | SGI Google HP Intel Nvidia PathScale Tsinghua University and others | Unix,Other | No | GPL |
Pelles C | Pelle Orinius | Windows | Yes | Freeware |
PGCC | The Portland Group | Windows,Unix,Other— Mac OS X | Yes — Visual Studio on Windows | Proprietary |
Portable C Compiler | Anders Magnusson and others | Windows,Unix,Other | No | BSD |
Power C | Mix Software | Other | No | Proprietary |
QuickC | Microsoft | Windows | Yes | Proprietary |
SAS/C | SAS Institute | Windows,Unix,Other-IBM mainframe, AmigaOS, 68K, 88K, Unix | Yes | Proprietary |
Tiny C Compiler | Fabrice Bellard | Windows,Unix | No | LGPL |
Turbo C | Embarcadero | Other | No | Proprietary - V 2.01 freely available |
CCS C Compiler | CCS, Inc. | Windows,Unix,Other | Yes | Proprietary |
MikroC Compiler | MikroElektronika, Inc. | Windows,Unix,Other | Yes | Proprietary |
ups debugger (includes C interpreter) | Tom Hughes, Ian Edwards, and others | Unix,Other-Solaris, SunOS | Yes | GPL |
VBCC | Dr. Volker Barthelmann | Windows,Unix,Other | No | Freeware (source code available, |
XL C | IBM | Unix-AIX | Eclipse | Proprietary |
当然,编译器还与计算硬件平台息息相关。同一个编译器会因为计算机体系结构不同而分为不同的版本。如 arm64,armhf,x86, x86_64,PowerPC 等等。
我们可以使用 gcc 编译器。同时还可以在 arm64,armhf,x84_64 等硬件平台上编译我们的程序。从中可以看出 C 语言的移植性还是很好的。同样的程序,我们也可以在不同的编译器以及硬件平台上编译执行。
2. 使用 IDE 编译 C 语言在集成环境中,编译 C 语言一般只需要在菜单中选择 运行 或者 调试运行 即可。也可以通过相关的快捷键来直接编译运行程序。要是只编译不运行,那么里面会有 编译 选项和与之对应的快捷键。这时程序只是编译,并不会运行。
对于初学者来说建议大家不使用 IDE, 而是直接使用文本编辑器来编辑程序。这里建议大家使用微软的 Visual Studio Code, 简称 VSCode。这个文本编辑器,现代,多功能,多种操作系统下都可以使用,功能强大,可以根据自己的需要安装插件扩展功能。
3. Ubuntu 下安装 GCC 编译器在类 Linux 中编译 C 语言是一件简单的事情。只要打开一个终端窗口安装 gcc 编译器即可。
对于基于 Ubuntu 系统的用户,安装编译所需的软件只需要执行如下命令:
sudo apt install build-essential
代码块1
Tips:对于 RPM 包管理的 Linux 发行版(如 CentOS,OpenSUSE 等),会有类似的软件组,只不过名称和安装时所使用的命令不同。
在安装结束后可以查看 gcc 的版本。
gcc --vresion
代码块1
会有类似如下的信息输出:
gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
代码块123
这时候可以把之前一直使用的示例程序编译一下。
实例演示
# includeint main()
{
int x,y,z;
printf("Welcome to Utopia's lessons!\n");
return 0;
}
12345678
首先将上面的命令保存为文件名 test.c。
编译 C 语言的命令如下:
gcc test.c -o test
代码块1
这个命令的意思是将 test.c 文件名的程序源码,编译为名称 test 二进制程序。
4. 在 Windows 下编译 C 语言以前在 Windows 下直接编译 C 语言是一件困难的事情。要么使用诸如 Visual Studio 之类的 IDE,要么安装 Cygwin 这类的模拟环境。
但是在目前 Windows 10 中,现在有了更便捷的选择。可以安装 WSL 环境, 全称为 Windows Subsystem for Linux。大家可以通过搜索上面的关键字来查找安装方式。
在这里我将微软的官方文档链接放在这里,方便大家安装。这里有详细步骤,以及大家在安装过程中会经常遇到的安装问题等。
适用于 Linux 的 Windows 子系统安装指南 (Windows 10)
在选择安装 Ubuntu 后,就可以按照上面在 Linux 环境下编译 C 语言的方式来编译了。
3. 小结Tips:这时候大家可能很好奇文件路径的问题。在 Windows 10 中的盘符,是挂载在 WSL 系统中 /mnt 目录下的。比如你的用户名叫 mooc,那么你的文档目录下存储了源代码,你要怎么进入 文档 这个目录呢?
cd
/mnt/c/Users/mooc/Documents/ 代码块1
C 语言的编译总结起来其实就是,用编译器将源代码,也就是我们可以读懂的程序,翻译成机器可以读懂的机器码。
这个过程需要你做到几点:
当然这是最简单的使用,我们还可以通过工具来进行编译命令行的替代。
欢迎关注「慕课网」,发现更多IT圈优质内容,分享干货知识,帮助你成为更好的程序员!
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流