5

我在C++ program. 所有供应商供应都是.lib, .dll and the header files.

该库最初用于MSVC++ 6,现在用于MSVC 2010.

看来他们支持 mingw、qt 等。我在调试或发布模式下使用它都没有问题。

我最近向该项目添加了另一个依赖项,这yaml-cpp是一个不提供二进制文件的开源项目。我能够使用 cmake 和 MSVC 2010 作为静态库来构建 yaml-cpp,并且可以成功地将其链接到我的项目。

为了做到这一点,我必须分别链接到调试发布版本,.lib因为我遇到了我刚刚学习的奇怪的 Microsoft CRT/链接器问题。

我很好奇,我的第一个库(如果你很好奇,是 libXl)的供应商如何提供.lib and .dll适用于一系列编译器而不用担心 CRT 版本的

您如何编写允许这样做的代码,或者它是链接过程?yaml-cpp是一个跨平台库,我是否可以以允许我在项目中使用单个 .lib 的类似方式编译它?

我不确定要寻找哪些资源来了解更多信息。人们如何了解这种东西?谢谢!

4

1 回答 1

1

.lib 和 dll 可以与各种编译器一起使用的原因在于确保您的代码中没有编译器特定的依赖项。.lib 和 .dll 不会重新编译,因此一旦制作完成,如果这样编码,它们应该是独立的,并且可以从任何能够使用 .dll 或 .lib 的地方访问它们的功能。

这里有一些关于 dll 和 lib 的优缺点的讨论 ,您可能会觉得有趣。

如果您需要更多信息,请告诉我,我会尽我所能。

于 2013-11-14T15:39:10.990 回答