[√]关于cmake的kits

283 阅读3分钟

在CMake中,Kits是指一个完整的编译和开发环境,包括编译器、目标平台、调试器等,可以轻松地将项目编译到不同的平台上。常见的Kits有Visual Studio、Android、iOS等等。

C:\Users\Administrator\AppData\Local\CMakeTools\cmake-tools-kits.json

这个文件的作用就是:告诉VSCode当前系统中都有哪些编译器可供使用,一般是CMakeTools插件自动获取到的,cmake扫描到的我的电脑上的编译器 image.png

  • x86默认是win32配置
  • amd64_x86默认是win32配置
  • amd64默认是win64配置
  • x86_amd64默认win64配置

如果编译器选择的不对,有时你会发现cmake config的项目工程不能生成32位程序,此时调整下编译即可。

历史插曲

早期时Intel先是自己搞了个x86架构,然后amd拿到授权也可以做x86了。

接着intel向64位过渡的时候搞了个ia64(x64架构),由于和x86架构不兼容,市场反应极差。

而amd率先搞了x86的64位兼容(32和64的混合架构),即现在的x86-64,Intel反过来向AMD要授权(intel和amd两家专利交叉的很严重)生产x86-64。

因为amd先搞出来的,所以x86-64也叫amd64。

  • x86 是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,intel官方文档里面称为“IA-32”

  • x84_64 是x86 CPU开始迈向64位的时候,有2选择:

    1. 向下兼容x86
    2. 完全重新设计指令集,不兼容x86

AMD抢跑了,比Intel率先制造出了商用的兼容x86的CPU,AMD称之为AMD64,抢了64位PC的第一桶金,得到了用户的认同。
Intel选择了设计一种不兼容x86的全新64为指令集,称之为IA-64(这玩意似乎就是安腾),但是比amd晚了一步,而且IA-64也挺惨淡的,因为是全新设计的CPU,没有编译器,也不支持windows(微软把intel给忽悠了,承诺了会出安腾版windows server版,但是迟迟拿不出东西)。后来不得不在时机落后的情况下也开始支持AMD64的指令集,但是换了个名字,叫 x86_64 ,表示是x86指令集的64扩展,大概是不愿意承认这玩意是AMD设计出来的。

  • 实际上,x86_64x64AMD64 基本上是同一个东西,我们现在用的 intel/amd 的桌面级CPU基本上都是 x86_64,与之相对的arm,ppc 等都不是x86_64。