C++ 可执行文件是否包含 .obj、.lib 和 .dll?

Do C++ executable includes .obj, .lib and .dll?

我有一个输出 C++ .exe 的 C++ 项目。该项目依赖于一些 .lib 和 .dll。如果我想在另一台服务器上使用 .exe,我可以只传输 .exe 而没有 .lib、.dll 和 .obj 吗? .exe 是否已构建,所以 'includes' 这些文件?

谢谢!

C++ 中的 compile/link 过程很复杂,但通常遵循此路径。

cpp/hpp-> obj

obj -> 静态库的 lib (.a) 要么 obj -> 动态库的 dll (.so)

obj、lib、dll -> exe

link 进程将采用 obj 和静态库并形成一个独立的 exe。 linker 使exe 依赖dll 但exe 将不包含动态库。

回答您的问题,运行时将需要 exe 和 dll。运行时肯定不需要obj和静态lib文件。