修复: 升级框架并完善报告导出

- 升级 Drogon 和 Trantor,修复畸形请求导致的连接计数泄漏\n- 增加第三方框架版本校验与自动重建\n- 完善完整报告导出和接口文档
This commit is contained in:
cloud
2026-08-10 09:50:09 +08:00
parent 99ed321d24
commit 0e28826073
82 changed files with 3095 additions and 566 deletions
+13 -1
View File
@@ -42,7 +42,8 @@ std::string create::detail()
"create a plugin named class_name\n\n"
"drogon_ctl create project <project_name> //"
"create a project named project_name\n\n"
"drogon_ctl create model <model_path> [-o <output path>] "
"drogon_ctl create model <model_path> [-o <output path>] [ "
"--clear-output]"
"[--table=<table_name>] [-f]//"
"create model classes in model_path\n";
}
@@ -55,3 +56,14 @@ void create::handleCommand(std::vector<std::string> &parameters)
parameters[0] = createObjName;
exeCommand(parameters);
}
// Prevent clang-cl/lld-link from discarding DrObject<T>::alloc_ on Windows.
// On COFF targets, clang places the CRT initializer for the template static
// member in the same COMDAT group as the variable itself. When no code in the
// translation unit takes the address of alloc_ (clang inlines className()),
// the entire COMDAT is eligible for elimination — and lld-link's /OPT:REF
// removes it, so DrClassMap is never populated.
// Explicit template instantiation forces a strong (non-COMDAT) definition,
// which the linker must keep. This is a no-op on MSVC, GCC, and ELF targets
// (where .init_array entries are GC roots and are never discarded).
template class drogon::DrObject<drogon_ctl::create>;