如何使用 *.o 和 *.d 文件?

标签列表如何使用 *.o 和 *.d 文件?c++compilationmakefile55我正在尝试使用一个库的示例。在该库的文档中,写道我需要将所有文件复制到我的目录中,然后输入make命令。之后,我需要进入“Debug”文件夹并输入./lib_examples命令来运行示例。
我按照这个步骤进行了操作。结果是,在“Debug”子目录中有很多*.o和*.d文件。其中包括lib_examples.o和lib_examples.h文件。但是我应该执行的lib_example文件却没有出现。
有人知道应该发生什么事情以及哪里出错了吗?我需要再做一步才能使用*.o和*.d文件吗?
- Roman23需要将目标文件连接起来才能生成可执行文件。请问您能否展示一下您Makefile中相关的部分?您在其中是否包含了链接步骤? - Rup2.d文件很可能是依赖列表,这是您可以在gcc和make之间利用的最方便的功能,以检测源文件以及包含文件(以及这些文件的包含文件等)的更改。它不是运行时文件,但绝对是构建时间文件类型。在此处阅读更多信息。 - WhozCraig1个回答99".o"文件很可能是中间文件,实际的可执行程序应该从这些文件中创建出来。
".d"文件很可能是makefile使用的内部状态,只有在对源代码进行更改并进行“增量”重建时才重要。
如果在运行make之后,你只有这些文件而没有可执行文件,那么最可能的解释是make在创建可执行文件时遇到了错误。如果是这种情况,那么make生成的最后几行输出应该会告诉你更多信息。
- slowdog回答链接网页内容由stack overflow 提供, 点击上面的可以查看英文原文, 相关问题4 如何使用makefile将.o和.exe文件放入/build/目录中?10 在一个makefile中,"$(@:%.o=%.d)"是什么意思?77 .o文件和.a文件的区别68 “.o”,“.a”和“.so”文件有什么区别?12 如何使用g++链接一个.o文件90 .a、.o和.lo文件的区别5 如何链接目标文件(*.o)和静态库文件(*.a)3 如何正确链接16位和32位的.o文件?© 2023 根据CC BY-SA 4.0 许可证授权京ICP备19056307号-1