还用C/C++开发应用的程序员,这五大工具请查收!

yumo6662周前 (07-18)技术文章14

不知道还有多少程序员选择用C/C++进行应用程序开发?需要用Python解析C源代码?想要超快的C编译速度?Rust等众多新编程语言,对程序员来说非常有吸引力,移动互联网经济的火热,Java的强烈冲击,C/C++似乎被众多程序员遗忘了,但C和C++仍然是编写应用程序的基础编程语言。更重要的是,C/C++的开发文化早已深入人心,这里有五个与C/C++开发相关的编译器,库和支持工具,欢迎补充!

Credit: Thinkstock

1、Ccache

C/C++程序的编译过程可能需要很长时间,Ccache是为了减轻一些编译负担。顾名思义,它是一个缓存,可以保存编译代码以便重用,如果相邻的几次编译运行没有改变代码,那么给定项目的运行时间越长,加速越多。它以逐个文件为基础,采用简单的MD4哈希算法来确定给定文件是否需要重新编译。不支持编译器的某些命令行命令,当Ccache无法知晓下一步该做什么时,它将返回原始编译器。

2、TCC

“T”代表“小”,“CC”代表“C编译器”。这个C99兼容编译器的二进制分发只有1.5MB。不仅小,TCC还超快,简单的C应用程序在一分钟之内就可以编译并运行,足够快以致可以使用C应用程序作为脚本。不建议程序员依赖TCC来生成二进制文件,它不会执行其他C编译器执行的复杂优化,但它可以不需等待直接对C应用程序进行原型化。

对于钟爱Visual Studio code的程序员,有一个非官方的扩展,可从该编辑器一键编译和运行。

3、Cpi

Cpi本质上是C ++的TCC:一个超级C ++编译器,允许适度的C ++程序像脚本一样执行。在脚本的顶部插入一个shebang,在脚本的正文中插入一个CompileOptions:指令,如果PHP解释器运行PHP脚本,Cpi可以按需运行它。如果需要,Cpi可以生成独立的二进制文件,甚至包含类似REPL的交互模式。

4、Kcgi

对于习惯在Web应用程序中使用C编程语言,并对速度有所要求的程序员,可以考虑使用kcgi库。它提供了一组用于接收HTTP请求,解析,返回标头和正文以及获取和设置Cookie的原语。Kcgi还有一些方法来保护系统免受攻击,因为它可以在沙箱子进程中解析请求。这确实强加了一些开销,但比使用完全不受信任的框架要好得多。一个小缺点:它还没有移植到Windows。现在,它是严格的Unix系列操作系统。

5、Pycparser

Python和C之间有很多重叠:Python的解释器是用C编写的,可以接受C扩展。为此,一些项目可以弥合两者之间的差距,Pycparser就是其中之一,但不能运行C本身。相反,它提供了C语言解析器的纯Python实现。它构成了基础cffi库的一部分,这是Python的ctypes利用C代码替代Python。如果是对性能要求很高的程序员,不建议使用Pycparser,如果希望利用Python的灵活性和丰富的库来分析C代码库,那么Pycparser将非常方便。

你还在用C/C++编程语言写应用程序么?你认为这五大工具是否实用?欢迎留下你的想法!

相关文章

C语言性能分析工具 (Profiler) 的使用 (如 gprof, Valgrind)

性能分析是代码优化的重要前提。通过使用性能分析工具(Profilers),我们可以找出程序中的性能瓶颈,即消耗CPU时间最多的代码段(热点),从而进行有针对性的优化。本节将介绍两款常用的性能分析工具:...

一个好用的 C 语言工具库!(比较好的c语言编程工具)

针对各个平台,封装了统一的接口,简化了各类开发过程中常用操作,使你在开发过程中,更加关注实际应用的开发,而不是把时间浪费在琐碎的接口兼容性上面,并且充分利用了各个平台独有的一些特性进行优化。这个项目的...

C语言内存调试工具 Valgrind、Memcheck

在C和C++等需要手动管理内存的语言中,内存错误(如内存泄漏、使用未初始化的内存、非法内存访问等)是非常常见且难以排查的问题。Valgrind 是一款强大的开源工具集,用于动态分析程序的内存使用和线程...

C语言通用工具库的4个函数(c语言运行工具)

通用工具库包含各种函数,包括随机数生成器、查找和排序函数、转换函数和内存管理函数。在ANSI-C标准中,这些函数的原型都在stdlib.h头文件中。附录B参考资料V列出了该系列的所有函数。现在,我们来...

PC端语音转文字工具CapsWriter-Offline结合内网穿透实现远程使用

前言本文主要介绍如何在Windows系统电脑端使用这款超好用的PC端语音转文字工具CapsWriter-Offline,并结合cpolar内网穿透轻松实现使用客户端异地远程访问本地服务端使用语音转文字...

C++语言的单元测试与代码覆盖率(c++ 单元测试框架)

对代码进行单元测试是几乎每个软件工程师都要完成的工作。本文以C++语言为基础,讲解如何进行单元测试并生成测试报告。前言测试是软件开发过程中一个必须的环节,测试确保软件的质量符合预期。对于工程师自己来说...