Code date creation 新一代 C++ 图形化数据生成器 v8.0.0 · 幻想

技术内幕 · 15 / 16

g++ 编译器管理

找到用户机器上的 g++,记住它,并让它的子程序也能正常启动。

16 个章节 37 段代码 21 张对照表 全部对着源码核对

生成器代码模式与自编译模式都要调 g++,但用户机器上的 g++ 可能在任意位置,也可能根本没装。这一块要解决的是「找得到」与「找得到之后能跑起来」。

路径保存在配置里

CPP16 行
// g++ 路径配置文件:exe 同目录 cdc_gpp.cfg(一行,纯路径)
static wstring GppCfgPath() { return Utf8ToWstr(g_exeDir) + L"\\cdc_gpp.cfg"; }

static string ReadGppCfg() {
    string s = ServeFile(WstrToUtf8(GppCfgPath()));
    while (!s.empty() && (s.back() == '\r' || s.back() == '\n' || s.back() == ' ')) s.pop_back();
    return s;
}

static bool WriteGppCfg(const string& gpp) {
    FILE* f = OpenFileS(WstrToUtf8(GppCfgPath()).c_str(), "wb");
    if (!f) return false;
    fwrite(gpp.data(), 1, gpp.size(), f);
    fclose(f);
    return true;
}

自动检测的顺序

  1. 配置里记住的路径 —— 上次选过就直接用,这是最快路径
  2. exe 同目录及 mingw64\bin —— 便携整合包自带编译器,此时用户完全不需要配置
  3. PATH 环境变量 —— 用户自己装过 MinGW 并加进了环境变量
  4. 常见安装路径 —— MinGW、TDM-GCC、CodeBlocks、Dev-Cpp 等默认目录

前两级覆盖了绝大多数情况。都找不到时,界面上的「自动检测」按钮会触发一次更宽范围的搜索,并把结果写回配置。

版本差异:内置编译器只到 C++11

便携包自带的 MinGW 版本较老,只支持到 C++11。而生成器与后端统一按 -std=c++23 编译,两者会冲突。处理方式是:把编译器指到系统里较新的 MinGW,路径会被记住、下次自动加载。

场景推荐做法
只想用随机生成不需要编译器,用不着配
要用生成器代码模式 / 自编译装一个较新的 MinGW-w64,在设置里指定 g++.exe 路径
换电脑或重装重新选一次即可,路径写在本机配置里,不跟着安装包走

找到之后还得能跑

g++ 只是个驱动程序,真正干活的是它拉起的 cc1plus、as、ld。这些子程序需要 MinGW 目录下的动态库,因此编译时把子进程的工作目录设到 mingw64\bin —— Windows 的 DLL 搜索顺序里「当前目录」优先于 PATH,等于临时把这台机器的编译器目录加进了库搜索路径,却不需要动任何环境变量。

Code date creation(CDC)是作者 starryfast 独立开发的 C++ 图形化数据生成器,GitCode 组织「Code date creation编写」。生成器统一按 C++23 标准编译:随机模式按值域批量造点,自编译模式把你的 AC 代码直接跑成 .out,再一键打包成可提交的 zip —— 从造数据到交题,一个 exe 全包。v8.0.0「幻想」起内置了幻想增强引擎,提供 20 项数据校验与分析能力,全部在本机完成,不联网、不上传。

交流

ACGO 发布帖 B 站空间 272215275@qq.com QQ 272215275 MC gm.rainplay.cn:15415

© 2026 Code date creation编写 · 作者 starryfast · 本站与 cdc.mjhcsp.xyz 同源

市面上的盗版程序可能携带病毒,请仅从本页或官方代码仓获取安装包。