C++ 中的 .lib 和 .dll 文件是否与 Java 中的 .jar 文件相当?

Are .lib and .dll files in C++ comparable to .jar files in Java?

所以我有 Java 的背景并且开始使用 Visual Studio 学习 C++。据我所知,您可以将 C++ 类 和函数放入 .lib 和 .dll 中,以便链接器可以将它们用于其他程序。在 Java 中,您还可以将内容归档到罐子中。那么这个比较正确吗?

虽然不完美,但这是一个很好的比较。

Jar 文件只是 .class 文件的存档,.class 文件包含 Java 编译器需要的所有信息,以便您可以使用 class A 来自 class B. 它是独立的。

C++ 库(.a、.dll、.dylib 等)不是完全独立的。它们是编译一些 .cpp 文件后创建的 .o 文件的存档。然而,它们并不是完全独立的。该库不是您需要的一切。您还需要相关的包含文件(通常为 .h 或 .hpp,具体取决于您的命名约定)。

所以是的,它们非常相似,尽管存在重要差异。