使用Automake构建C++程序时遇am__fastdepCXX未定义错误求助
解决Autotools构建C++程序的Automake错误与警告
问题分析与修复步骤
1. 修复"subdir-objects未启用"警告
警告源于Automake的编译兼容性配置,即便源文件在当前目录,部分版本的Automake仍会触发该提示。两种解决方式任选其一:
- 在
configure.ac的AM_INIT_AUTOMAKE宏中添加subdir-objects选项:AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) - 或者在
Makefile.am中添加配置:AUTOMAKE_OPTIONS = subdir-objects
2. 修复"C++相关变量未定义"错误
两个错误的核心原因是未在configure.ac中添加C++编译器检测宏,必须添加AC_PROG_CXX让Autotools识别并配置C++编译环境。
修改后的configure.ac示例:
AC_INIT([prueba], [1.0.0]) # 启用subdir-objects并开启编译警告 AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) # 检测C编译器(按需保留) AC_PROG_CC # 检测C++编译器,必填项 AC_PROG_CXX # 生成Makefile AC_OUTPUT([Makefile])
3. 确保Makefile.am配置正确
Makefile.am需明确指定可执行文件及对应C++源文件:
# 定义要生成的可执行文件 bin_PROGRAMS = prueba # 指定可执行文件的源文件 prueba_SOURCES = prueba.cpp
重新执行构建命令
修改配置文件后,按顺序重新运行命令:
aclocal && autoconf && automake --add-missing
内容的提问来源于stack exchange,提问作者exodehm
相关产品推荐
相关产品推荐

