gpt4 book ai didi

c++ - 供应商提供的 C++ 库如何支持多个编译器?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:18:00 25 4
gpt4 key购买 nike

我在 C++ 程序 中使用供应商提供的库。所有供应商提供的都是 .lib、.dll 和头文件。

这个库首先在 MSVC++ 6 中使用,现在在 MSVC 2010 中使用。

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

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

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

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

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

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

最佳答案

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

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

如果您需要更多信息,请告诉我,我会尽力满足。

关于c++ - 供应商提供的 C++ 库如何支持多个编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19981251/

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