{fmt}带有C ++建筑商的clang工具链的库
克隆
请使用“ recurse-submodule”开关克隆存储库:
git clone --recurse-submodules https://gi*t*hub.c*om/gcardi/FmtLibWithCppBuilderClang.git
笔记
在示例中,为所有平台/配置定义了FMT_Header_Only宏,以选择{FMT}的仅标头模式。它也应该与库的编译版本一起使用,但是Dynamic RTL版本的Embarcadero基于Clang的编译器库存在一些问题。请参阅RSP-34592问题报告。
控制台示例在UTF8中发出文本,而GUI中使用的示例主要处理Unicode。
请不要忘记将fmt\\include添加到所有平台/配置项目设置中的标头文件的搜索路径中。
另请注意,由于{FMT}寻找C ++构建器上不存在的_isatty函数,因此您必须放置
#define _isatty isatty
在#include <fmt/core.h> (或在项目定义中设置此宏)之前。
此外,不管您与静态或动态库链接,违约的库库设置了clang工具链的默认库忘记包含{fmt}库使用的两个函数,即:__udivti3和__umodti3。为了解决此问题,您只需要添加(在代码中的某个地方)以下行:
#pragma comment(lib, \"compiler_rt\") // __udivti3, __umodti3
或在项目中明确添加Compiler_rt.a(对于BCC64)或Compiler_rt.lib(对于BCC32C)。
屏幕截图
演示示例/控制台/简单
演示示例/控制台/颜色
演示示例/GUI/简单
