【发布时间】:2021-10-27 06:54:56
【问题描述】:
为什么我们需要目标文件?我尝试使用命令g++ -o main.exe main.cpp (other files).cpp 链接多个文件,它可以工作。但是从网上的教程看,需要先用g++ -c main.cpp (other files).cpp命令把文件转成*.o文件,再用g++ -o main.exe main.o (other files).o把文件链接起来。如果我们可以对g++ -o main.exe main.cpp (other files).cpp 做同样的事情,为什么我们需要先将文件转换为*.o?
【问题讨论】:
-
这能回答你的问题吗? What is *.o file?
-
假设您有一个 300 万行的 c++ 项目。您更改一行代码。你想每次都重新编译整个东西吗?或者您是否想要一种机制,您可以重新编译您更改的文件并重用其余文件?是的,对于小型项目,您可能看不到重点。想大局。
-
此外,C++ 编译通常是内存密集型的。无论如何,您实际上无法一次编译数百万行。
-
@dratenik 您的意思是 *.o 文件将允许您重新编译其中一个文件而不是所有文件吗?还是相反?因为现在我只是在每次更改后一次又一次地运行命令。
-
库通常只是某种形式的目标文件的集合(扩展名为
.lib、.a、.so、.dll)和相应的 API(头文件)。跨度>