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

供应商如何提供C库支持多个编译器?,第1张

概述我在C程序中使用供应商提供的库.所有供应商耗材都是.lib,.dll和头文件. 该库首先在MSVC 6中使用,现在在MSVC 2010中使用. 它似乎支持mingw,qt等.我在调试或发布模式下使用它没有任何问题. 我最近为项目yaml-cpp添加了另一个依赖项,yaml-cpp是一个不提供二进制文件的开源项目.我能够使用cmake和MSVC 2010作为静态库构建yaml-cpp,并且可以成功地 我在C程序中使用供应商提供的库.所有供应商耗材都是.lib,.dll和头文件.

该库首先在MSVC 6中使用,现在在MSVC 2010中使用.

它似乎支持mingw,qt等.我在调试或发布模式下使用它没有任何问题.

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

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

我很好奇,我的第一个库的供应商(libxl,如果你很好奇)如何提供一个.lib和.dll,它可以在一系列编译器上运行而不用担心CRT版本?

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

我不确定需要哪些资源来了解它.人们如何了解这类东西?谢谢!

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

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

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

总结

以上是内存溢出为你收集整理的供应商如何提供C库支持多个编译器?全部内容,希望文章能够帮你解决供应商如何提供C库支持多个编译器?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1226982.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存