c++ - 为什么我们需要构建一个boost库,仅仅包含头文件还不够,因为boost是模板
问题描述
如果这是一个幼稚的问题,我很抱歉,我只是想知道为什么需要构建 boost 库,因为使用 boost 库包中的引导文件并构建一个包含 .lib .dll 静态和动态库的库。至于据我所知,boost是一个模板库,构建二进制库没有意义,你可以直接包含头文件并直接使用它......
解决方案
对于 Boost 问题,Boost 网站是一个很好的答案,特别是出现在Unix变体入门和Windows 入门中的“仅标头库”部分。
没有什么可建造的?
大多数 Boost 库都是仅头文件:它们完全由包含模板和内联函数的头文件组成,并且在链接时不需要单独编译的库二进制文件或特殊处理。
请注意,使用的是“大多数”,而不是“全部”。在 1.71 版中,有 16 个库必须单独构建,7 个库具有可选的单独编译组件。(Boost 站点有一个这些库的列表,并且该列表会随着新版本的发布而更新。)如果您不使用这些特定的库,那么正确,您可以只包含标头而不链接到 Boost 库。
推荐阅读
- android - 模块是使用不兼容的 Kotlin 版本编译的。其元数据的二进制版本是 1.5.1,预期版本是 1.1.15
- python - 通过分配特定名称传递python中的每个excel文件
- sql - 如何对字母数字列求和
- regex - 如何修复bash脚本以在另一个文件中查找正则表达式?
- c# - 如何在 C# 中没有字体格式的情况下在 SQL Server 中存储和读取数据?
- python - 在新线程中运行 cryptofeed(asyncio 库)
- ros - 是否可以在运行时停止或重新启动 ros 节点?
- django - 使用 pandas 将数据加载到 Django SQLite 中导致异常值:外键不匹配
- django - 如何使用相同的值但使用现有字段之一的不同数据类型来注释 Django Queryset?
- flutter - 如何使用 youtube_player_flutter 包在 Flutter 中播放全屏 youtube 视频?