跳到主要内容

Drogon 自注册符号的链接与插件兼容策略

背景

C++ 静态库中 Drogon 依赖静态初始化自注册;whole-archive 链接在多平台/多消费方场景 fragile 且拖入全部符号。

决策

Controller 采用 HttpController<T,false> + 显式 registerController,不依赖 whole-archive;OAuth2Plugin 保持类名与各 config(config.{json,dev,ci,prod,bench}.json)plugins 块的零改动(方案 A)。边界:若插件改为静态库分发,消费方仍需 whole-archive 才能拉入自注册符号。

后果与现状对照

SDK Smoke(find_package 全栈消费方)在 CI 验证该策略;examples/ 提供参考宿主。