昨晚找到了TCP/IP详解卷,想要跟着书本联系一下,很快就发现这么多年的时间跨度下,c语言的包啊库啊都变了。有代码资源,在解压的时候又出现了奇怪的问题。
于是今天找了一下我电脑里这些包的位置。这些包是我大一的时候,要用devc++编程,和软件一起下载安装的。发现它们装在一些文件夹里,这些文件夹有一些奇怪的名字。叫做MINGW64。
我大概是查了一下GCC,随后知道了GNU和OSS的一些历史。OSS是开源软件。GNU则是开源运动中的一个项目。参见下方视频。
https://www.bilibili.com/video/BV1zV411d7La
看视频的时候我想到了一个词叫做开源三杰,就像是文艺复兴三杰一样。他们有很强的个人魅力。为了教学开发出的Minix,GNU is not unix,还有Linux。我所知道的也几乎都是来自视频的。其实它既是技术史,也是思想史。从自由到开源,到开源商业软件。很有意思。
我认为GNU是三杰中最左的一位创建的项目,它原本是想要开发一个开源的操作系统,但是它的内核没有开发好,现在一般就直接使用Linux内核。GCC是GNU Compiler Collection,顾名思义是GNU操作系统中使用的编译器。最开始只支持c,后来也支持别的。
下面用gcc表示c编译器。
其实编译器和操作系统的关系还是相对独立的。为了让gcc的编译器能够在Windows上工作,开发出了MinGW,全称是Minimalist GNU for Windows,不过这只能用在32位的Windows。我的MINGW64应该就是支持64位Windows的GNU的c编译器了。
Windows应该是有自己的c编译器的。我查了一下是Visual Studio的编译器吧。我找了一下自己电脑里的,没弄清楚。这应该是个IDE。
然后我就想试一试用命令行编译。命令的格式是gcc 加上头文件的路径。编译最后变成可执行文件就可以直接用命令行执行了。
但是这里有一个配置问题。必须要把设置几个gcc会用到的环境变量,好让系统知道它要用到的一些库和一些头文件在哪里。对我来说,我需要创建几个环境变量,然后将devcpp的那些库和包的路径赋值给它们。
创建环境变量就在系统的高级设置里面。可以将一些常用的应用程序的路径放在环境变量里,就能够通过命令行打开啦!
这个过程我也不是很清楚。
下面是一个简单c文件用命令行编译的过程。
https://blog.youkuaiyun.com/qq_40869711/article/details/112981109