最近我开始了一个包含 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 .它没有帮助。
最佳答案
你不是想在这里设置每个对象的标志或其他任何棘手的事情,我的 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.acAC_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
关于autotools - 生成的 makefile 不断尝试编译不存在的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60833426/