在编译过程结束时,程序位于机器代码中的.exe文件中.因此,如果不必安装像MS Visual Studio C++这样的东西,机器是否应该能够运行它?基本上,我正在制作一个mingw程序,并希望与其他人分享.我不明白为什么我不能只发送.exe文件.澄清将不胜感激.
das*_*ght 11
C++将您的代码编译为机器代码.如果您的程序是自包含的,那就是您所需要的.但是,更复杂的运行程序通常依赖于额外的编译代码,这些代码可通过库提供给您的程序.
通常,库有两种"风格" - 静态和动态.静态库被"编入"您的编译代码.这并不理想,因为多个程序包含相同的代码,导致代码重复.另一方面,动态库在使用它们的所有程序之间共享,从而更有效地利用空间.
安装运行时添加了动态库,供所有使用C++编译的程序使用.
您的程序可能会调用您自己未编写的标准库中的许多函数.您需要运行时库.您的代码可能还需要在main之前运行代码来设置C++程序所需的基本环境 - 运行时库为您执行此操作.在主要结束之后,需要根据标准进行各种清理(并且您的程序可能还取决于此),编译器运行时库会处理此问题.
您的代码不存在于真空中(它可以,但它不再是标准的托管C++程序).它依赖于并依赖于标准的运行时库来提供C++标准所说的环境.