gpt4 book ai didi

C++ .exe 停止工作

转载 作者:行者123 更新时间:2023-11-30 04:20:17 25 4
gpt4 key购买 nike

我在使用 C++ 时遇到了困难。我制作了一个 hello world,它已经编译成 YouTube.exe 和 main.o。我运行该程序,它打印出 hello world,但随后显示 YouTube.exe 已停止工作。即使我将 main.o 移动到不同的目录,YouTube.exe 仍然会打印 hello world 并停止工作!所以我有两个问题:1、为什么去掉main.o后程序还是打印hello world?2. 为什么程序停止运行了?这是代码:

main.cpp:

#include<iostream>

using namespace std;

int main(){

int a;
cout << "Hello World!";
cin >> a; //to make the program pause

return 0;
}

最佳答案

因为 .o 文件是 object file其中包含您的程序,但仍需链接并重新定位到真正的可执行二进制文件。

这意味着 YouTube.exe 已经包含了 main.o 中的内容,但是是可执行格式。

实际发生的是编译器生成.o 文件(每个目标文件都由它自己编译),然后链接器将所有.o 文件链接在一起,解析任何依赖并重新定位生成真正的 .exe 文件所需的内容。

关于C++ .exe 停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15370376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com