gpt4 book ai didi

c - LIS、OBJ、EXE文件之间有什么关系?

转载 作者:行者123 更新时间:2023-12-04 11:28:15 27 4
gpt4 key购买 nike

我正在使用不同的编译器 CC。它不像 GCC 那样工作。

当我使用 GCC 时,我可以执行“gcc -o exe_filename source_filename”,输出将是一个 exe 文件。

当我使用 CC 时,我需要 2 个步骤。首先,我编译源文件(假设它涉及一个 .c 和一个 .h 文件)并创建一个 .lis 文件和一个 .obj 文件。然后我执行创建 .exe 文件的链接命令。

LIS、OBJ、EXE文件有什么关系?我问这个是因为我想知道如果我想在另一台机器上使用 exe 而不包含不必要的文件,我需要哪些文件。如果 LIS 和 OBJ 只是用于编译,我不需要在另一台机器上使用它。

最佳答案

编译器采用 C 文件(并包括引用的 H 文件)并生成对象 (OBJ) 和列表 (LIS) 文件。目标文件包含代码和数据,但具有未解析的外部引用。该 list 通常包括行号、错误和警告消息以及可选部分,例如类型和变量交叉引用。

链接器组合目标文件并解析对库的外部引用。结果是一个可执行 (EXE) 镜像。 (或创建库时可共享的图像。)

只需将可执行文件从一个系统复制到另一个系统即可运行该应用程序。该列表可能有助于解释错误消息,因为它提供了正确关联的行号。如果由于库中的更改而需要重新链接应用程序,特别是如果目标系统的版本比原始系统旧,则该对象可能很有用。

关于c - LIS、OBJ、EXE文件之间有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14134732/

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