Arm*_*yan 13 c++ dependencies operating-system runtime
这个问题一直困扰着我一段时间.让我们考虑以下两个程序:
#incude <iostream>
int main()
{
   std::cout << "Hello, World!";
}
和
int main()
{
   int x = 5;
   int y = x*x;
}
我知道这取决于编译器和操作系统,但我需要一般答案或特定的例子.TIA.
作为一般答案,第一个将需要C++运行时库(您需要支持标准库调用的东西).这些形成了语言和支持库之间的各种接口,而这些接口又知道如何在给定环境中实现它们的功能.
第二个不使用运行时库.它将使用C启动和终止代码(初始化和拆除C环境),但它是关于这些是否被视为运行时库的一部分的讨论点.如果你认为它们是一个部分,那么,是的,它们将被使用.它可能只是一个非常小的部分,因为启动代码和流内容之间的大小通常有很大差异.
您可以静态链接代码(在链接时绑定)与运行时库或动态链接(以便在加载时完成实际绑定).这对Windows和Linux都是如此.
Windows 上的 C 程序需要 Windows 附带的 CRT 库。C++ 有时需要所谓的“C++ 可再发行组件”。它们可以通过链接嵌入到应用程序中,但这将使 EXE 变得更大。
| 归档时间: | 
 | 
| 查看次数: | 8074 次 | 
| 最近记录: |