LTLIBRARIES:mv*.Tpo*.Plo,但前者不存在而后者已经存在

Ada*_*sop 7 macos automake autotools libtool

我正在将现有库(libtcod)直接转换为Autotools(用于OS X幸福).不幸的是,当我改变我Makefile.amlib_LIBRARIES规则时lib_LTLIBRARIES,构建从成功转为un.摘录自以下输出:

Making all in .
make[1]: Nothing to be done for `all-am'.
Making all in src
/bin/sh ../libtool --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -g -O2 -MT bresenham_c.lo -MD -MP -MF .deps/bresenham_c.Tpo -c -o bresenham_c.lo bresenham_c.c
mv -f .deps/bresenham_c.Tpo .deps/bresenham_c.Plo
mv: rename .deps/bresenham_c.Tpo to .deps/bresenham_c.Plo: No such file or directory
make[1]: *** [bresenham_c.lo] Error 1
make: *** [all-recursive] Error 1
Run Code Online (Sandbox Code Playgroud)

src/Makefile.am 看起来像这样:

lib_LTLIBRARIES = libtcod.la
libtcod_la_SOURCES = bresenham_c.c bresenham3_c.c bsp_c.c color_c.c ...
Run Code Online (Sandbox Code Playgroud)

src/.deps 包含:

$ ls src/.deps/
bresenham_c.Plo bresenham_c.Po ...
Run Code Online (Sandbox Code Playgroud)

我在这里犯了一个明显的错误,还是应该这样做?

Ada*_*sop 10

是的,我犯了一个明显的错误.我需要运行autoreconf -i来创建一个非空ltmain.sh脚本; 现有的一个../libtool是无操作的.

  • 什么是.Tpo和.Plo,顺便说一下?以及`autoreconf -i`如何帮助解决与它们相关的问题?为什么这不会出现在依赖于automake的项目的README或INSTALL文档中? (3认同)