You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 12.04安装doxygen 1.9.2时cmake与make编译报错求助

问题根因

你当前遇到的编译报错本质是编译器对C++14标准支持不完整导致的:

  • 你正在编译的doxygen 1.9.2使用了C++14的constexpr特性,允许非静态成员函数声明为constexpr
  • 你系统中默认调用的clang 3.4仅支持早期draft版本的C++14规范,不支持“非字面类型的constexpr非静态成员函数”语法,所以触发编译报错
  • 你虽然已经升级了gcc-6、g++-6(这两个版本完全支持C++14),但cmake配置阶段默认优先调用了clang编译器,没有使用你升级后的gcc工具链
解决方案

按优先级从高到低选择即可:

  • 方案1:重新执行cmake配置,强制指定使用gcc-6、g++-6作为编译工具链,操作步骤如下:
    1. 进入之前的build编译目录,清空旧的cmake缓存:
      cd ~/doxygen/build
      rm -rf ./*
      
    2. 重新执行cmake,显式指定编译器路径:
      cmake .. -DCMAKE_C_COMPILER=/usr/bin/gcc-6 -DCMAKE_CXX_COMPILER=/usr/bin/g++-6
      
    3. 重新执行make编译即可:
      make -j$(nproc)
      
  • 方案2:降低doxygen版本
    如果方案1执行后仍有兼容问题,可以更换为doxygen 1.8.17及更早版本,这类版本不需要完整的C++14支持,在Ubuntu 12.04环境下编译适配性更好。
  • 方案3:升级clang版本
    如果必须使用clang作为编译器,可将clang升级至3.5及以上版本,该版本开始完整支持C++14的constexpr相关语法。

内容的提问来源于stack exchange,提问作者Kenny Pan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:36:02