供应商如何提供C库支持多个编译器?
我在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的优缺点的讨论,你可能会觉得有趣. 如果您需要更多信息,请告诉我,我会尽我所能. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |