没事找事?
为什么要这个呢?因为不论是win还是linux其实都只是一个平台罢了,这个平台想干嘛就干嘛,vscode的终端可以使用dir和ls就说明了,很多软件是可以同时兼容两个操作系统的。
而且很多大牛,逆向实现了win中dll,比如wine,这个团队就实现win中dll库。比如steam掌机是linux系统,也可以运行pc游戏了,非常神奇和高难度的工作哦。
所以说,其实就是一个开发环境罢了
需要安装的东西?
肯定别想win里面有gcc啦!我们去网上下载的ubuntu都没有gcc,要自己安装,同理,也有win32的gcc。
自然makefile也是win没有,有些项目是通过makefile来实现编译的,所以,这就很有必要咯。巧了下面这个MinGW同时有gcc g++等,而且还有makefile哦。但是名字是mingw32-make.exe,最好是复制一份改名字为makefile就好啦。
MinGW下载并安装到自定义的存储中间咯,比如我的:
环境变量
这里,我就多提一嘴吧,毕竟环境变量这种东西,很多小白和工程师都懵懵懂懂的。
其实环境变量顾名思义就是这个开发环境过程中的全局都能使用的变量,这些变量一般都是字符串,或者说是路径,我们脚本类的开发过程中,只有容器这个概念。
1 | csm = "../../csm/csm1/csm2/bin" |
我可以在Path添加一个路径,此时就是一个字符串,不过脚本可以提取并使用出来,这样在文件系统的加持下,我们就能轻易得到这个文件夹中的文件和可执行指令等。
因此我们把git.exe 、gcc.exe、g++.exe等可执行文件添加到对应路径环境变量中,我们在cmd终端就能直接使用git、gcc等来操作,这个有点调用动态库的味道了。
环境变量在linux、win、mac等操作系统都有哦。还有就是win的多用户情况下的环境变量了。也就是分成系统变量和用户罢了。
其实也非常好理解,一个win一个linux本身就不是一个用户,本身就支持多用户使用和操作的,所以,为了每个用户量身定做,也是非常合理的,常见的就是安装程序的时候,会弹出来是否为了本机所有用户安装,其实这就是系统环境变量了。
环境变量优先级和顺序
我们在用户变量和系统变量中创建同名变量,那么windows会将用户变量覆盖系统变量。
windows下用户变量和系统变量的优先级_window 让用户环境变量 优先于 系统环境变量-CSDN博客
同一个环境下,从前往后开始查询变量,所以,好巧不巧,我这里有一个minGW32的bin在后面,前面又有一个老版本的minGW32里面自然也有bin,我把它放在新版后面,就会导致系统和开发环境调用老版本的gcc、g++等东西,出现的结果可能就差强人意了。
windows环境变量PATH顺序的重要性 - 阿玛尼迪迪 - 博客园
总结一下咯
其实,不论win,还是mac,还是win等,其实都是一个操作系统环境,内部都有脚本的,都有文件系统和路径,有win的盘系统,有linux、unix的根系统,都是有路径来的,而环境变量就是最好路径描述。
1 | #总不能前面加上一长串的地址然后执行一个git? |
所以,平台只是一个平台,只要满足他的开发环境就可以使用,巧了不是gcc、python那些编译链刚好有很多平台版本的,环境ok就可以用了。