我知道要在Windows上运行c ++,你需要专门为Windows编译,同样适用于Linux和...
但是,例如,如果我正在编译用本机c ++编写的Windows程序,我可以在新安装的Windows PC上运行它吗?我的意思是,在没有下载可视化c ++运行时库等的情况下,我可以编译它,比方说,在我的计算机上重新安装Windows,并在不安装任何其他东西的情况下运行它?
(上面的问题使用Windows作为示例,但同样的事情可以在新安装的Linux发行版上完成?例如Ubuntu)在此先感谢.
Emi*_*lia 16
唯一的答案是"它取决于".
操作系统可以通过多种方式"运行"程序,可以构建程序的多种方式,以及可以组装多种方式的代码.
一个只使用"标准库"并静态链接所有库的程序,不需要任何其他依赖(在某种意义上,它需要的所有代码都在二进制本身或者是作为系统本身的一部分的OS库中 -已经在系统上).
但:
静态链接标准库(最有可能存在于所有程序中)将使相同代码的许多副本的内存使用量膨胀.这就是库经常动态链接的原因,但这也需要"安装"这些库
仅使用标准库的程序只能在所有系统中以某种方式"共同"(或可以通常表示)的事物,从而失去使操作系统与另一个系统不同的所有特性.
有一些"平台" - 根据其外围设备的性质 - 并不代表另一个:咖啡机有12个按键和一个文本2行x 20 col显示屏.PC有一个鼠标,一个键盘和一个显示器,可以达到甚至10,000个像素的宽度,每个数百万的颜色.平板电脑具有触摸表面,可以同时抓住多个点.你能想象一个程序在这三个平台上运行相同吗?