gpt4 book ai didi

makefile - autotools -- make[1] : *** No rule to make target `all' . 停止

转载 作者:行者123 更新时间:2023-12-05 05:26:27 24 4
gpt4 key购买 nike

我使用 autotools 创建了一个简单的测试应用程序 + 库。问题是生成的 Makefile 不理解“all”目标。

生成文件.am:

ACLOCAL_AMFLAGS = -I m4
SUBDIRS = src
VERSION=0:0:0
EXTRA_DIST = autogen.sh

bin_PROGRAMS = testApp

libtest_la_SOURCES = src/testLibrary.c
libtest_la_LDFLAGS = -version-info ${VERSION}

testApp_SOURCES = src/testApp.c
testApp_LDADD = libtest.la
lib_LTLIBRARIES = libtest.la

配置文件:

AC_INIT(foobar, 1.0, me@mail.com)
AC_CONFIG_AUX_DIR(config)
AC_CONFIG_SRCDIR(src)
AC_PROG_CC
AM_PROG_CC_C_O
LT_INIT
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([subdir-objects])
AC_OUTPUT(Makefile)

命令“make”的输出:

Making all in src
make[1]: *** No rule to make target `all'. Stop.
make: *** [all-recursive] Error 1

然而 make 理解“testApp”目标并成功构建它。根据我对 autotools 的有限了解,bin_PROGRAMS 变量应该为“所有”目标提供其数据吗?

最佳答案

您似乎结合了递归和非递归 make 规则。

如果删除这一行:

SUBDIRS = src

这个错误可能会消失。它正在 src/Makefile 中寻找 all 规则。

关于makefile - autotools -- make[1] : *** No rule to make target `all' . 停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26109747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com