作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 c++
在 Windows (dll)
上开发共享库。该库依赖于另一个外部库。
将它们链接在一起的最佳方式是什么?
dll
提供给正在使用我的共享库的应用程序?对于第二种情况,如果我创建一个使用我自己创建的共享库以及外部库作为共享库的应用程序,会发生什么?
例如,如果我的共享库是使用外部库版本 1.1
构建的,并且应用程序使用较新的版本(例如 1.3
)?现在 dll
应该不同,但我如何将它们提供给主应用程序?
是否有一些关于如何处理此类情况的最佳实践或建议?
最佳答案
这实际上取决于您想要做什么以及如何部署您的库。
共享/动态库(Windows 上的 dll)比静态库有几个优点
当然他们也有一些弱点
您可能必须使用dll,具体取决于您的外部库许可,例如Qt在许多情况下(不是全部)需要共享库链接。
标准约定通常是提供库的共享版本和静态版本,其中共享版本完全链接到其他共享库,静态版本是 ar
静态库(包括所有依赖项)。然后,共享库变体提供链接说明(即 .pc
(pkgconfig) 文件),指定要链接到的其他库的版本(即 v1.1
的x.dll
)以便成功编译/链接。
关于C++:将外部库链接到 dll 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60337538/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!