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

Autotools源码外构建失败问题求助

问题排查与解决方案

你遇到的cd: src: No such file or directory错误,核心原因是你的configure.ac没有配置生成src/Makefile。当进行源码外构建时,configure需要知道要在build/src目录下生成对应的Makefile,但目前你的配置只指定了根目录的Makefile,导致make尝试进入build/src目录时发现它不存在。

具体修复步骤:

  1. 修改configure.ac文件
    在AC_CONFIG_FILES这一行中添加src/Makefile,修改后内容如下:

    AC_PREREQ(2.59)
    AC_INIT([testprog], [1.0], [myemail@example.com])
    AC_CONFIG_AUX_DIR([config])
    AM_INIT_AUTOMAKE([-Wall -Werror foreign])
    AC_CONFIG_HEADERS([config.h])
    AC_PROG_CC
    AC_CONFIG_FILES([Makefile src/Makefile])  # 新增src/Makefile配置
    AC_OUTPUT
    
  2. 重新生成配置文件
    回到项目根目录(而非build目录),运行以下命令更新配置脚本:

    autoreconf -ivf
    

    这个命令会重新生成configure脚本及相关依赖文件,确保新的配置规则生效。

  3. 重新执行源码外构建
    进入build目录,重新执行配置和构建流程:

    cd build
    ../configure
    make
    

问题原因详解:

你在根目录的Makefile.am中指定了SUBDIRS = src,Autotools会默认期望configure为每个子目录生成对应的Makefile。但如果configure.ac的AC_CONFIG_FILES列表中没有包含子目录的Makefile路径,configure就不会在build/src下生成该文件,也不会自动创建这个目录,最终导致make执行时找不到目标路径。

额外小提示:如果后续需要构建test等其他子目录,记得把对应的test/Makefile也添加到AC_CONFIG_FILES列表中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:12:46