【问题标题】:Generated makefile keeps trying to compile file that doesn't exist生成的makefile不断尝试编译不存在的文件
【发布时间】:2020-03-24 14:49:10
【问题描述】:

最近我开始了一个同时使用 C 和 C++ 源代码的项目。在我的 configure.ac 文件中,我检查了两种语言,如下所示:

AC_PROG_CC
AC_PROG_CXX

这是我的 Makefile.am

lib_LTLIBRARIES = libfris.la

libfris_la_LDFLAGS = -module -avoid-version -shared
libfris_la_SOURCES = foo.cpp bar.c

当我说 make 时,它​​抱怨我没有名为 bar.cpp 的文件(我从未提到过)。为什么是这样?我想这是我自己的愚蠢。抱歉这个问题!

我已经看过这个:http://gnu-automake.7480.n7.nabble.com/Mixing-C-and-C-td4676.html。它没有帮助。

【问题讨论】:

  • 我认为没有理由认为提供的代码对您描述的行为负责。我们可能需要minimal reproducible example 来演示问题,以便能够解释发生了什么。

标签: autotools


【解决方案1】:

您并没有尝试在此处设置每个对象的标志或其他任何棘手的事情,我的 automake 看起来就像您的一样。这可能是非常古老的 automake 中的错误吗?

对于automake 1.16.1、autoconf 2.69 和libtool 2.4.6,我没有收到任何关于缺少 bar.cpp 的投诉:

我的 Makefile.am:

CLOCAL_AMFLAGS = "-Im4"
lib_LTLIBRARIES = libfris.la

libfris_la_LDFLAGS = -module -avoid-version -shared
libfris_la_SOURCES = foo.cpp bar.c

还有我的 configure.ac

AC_PREREQ([2.69])

AC_INIT([stack-example], [0.1],)
AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
AM_SILENT_RULES([yes])

AM_PROG_AR
LT_INIT
AC_CONFIG_MACRO_DIRS([m4])

AC_PROG_CC
AC_PROG_CC_C_O
AC_PROG_CXX

AC_CONFIG_FILES([Makefile])
AC_OUTPUT

【讨论】:

    猜你喜欢
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多