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

使用Autotools构建纯C项目遇Makefile.am错误:CXX未定义

Autotools编译错误:C++ source seen but 'CXX' is undefined 解决方法

问题根源

你提到仓库里没有.cc/.cxx/.cpp类型文件,但从你贴的Makefile.am代码里能明确看到:

libfoo_la_SOURCES = ... lib/foo_eval.cc

lib/foo_eval.cc是标准的C源文件后缀,Autotools会自动识别该后缀并尝试调用C编译器,但你的configure.ac里没有初始化C++编译环境(未添加AC_PROG_CXX),因此触发报错。之前编译正常是因为这个.cc文件没被列入编译源文件列表,添加新文件时才被加进来。

解决方法

根据实际情况二选一:

  1. 若该文件是C代码(后缀写错)

    • 将lib/foo_eval.cc重命名为lib/foo_eval.c
    • 修改Makefile.am中libfoo_la_SOURCES对应的条目,把.cc改成.c
    • 重新执行autoreconf -v -f -i,无需修改configure.ac,也不会引入C++编译器依赖
  2. 若该文件确实是C++代码

    • 必须在configure.ac中添加AC_PROG_CXX,因为编译C代码依赖C编译器,这是无法避免的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:50:37