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

7

我正在将一个现有的库(libtcod)转换为Autotools(为了适应OS X),这是一个相当直接的过程。不幸的是,当我将Makefile.am中的lib_LIBRARIES规则改为lib_LTLIBRARIES时,构建从成功变成了失败。以下是输出中的摘录:

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

src/Makefile.am 的内容如下:

lib_LTLIBRARIES = libtcod.la
libtcod_la_SOURCES = bresenham_c.c bresenham3_c.c bsp_c.c color_c.c ...

src/.deps 包含:

$ ls src/.deps/
bresenham_c.Plo bresenham_c.Po ...

这里我犯了一个显而易见的错误吗?还是这个应该能够正常工作?
1个回答

12

是的,我犯了一个很明显的错误。我需要运行autoreconf -i命令来创建一个非空的ltmain.sh脚本;已有的脚本会使得这里的../libtool命令失效。


我已经为这个问题苦苦挣扎了一段时间。我的程序在编译时非常好,但在openSUSE12.1上尝试运行后出现了问题。这个修复解决了我的问题。 - The Big Spark
4
顺便问一下,.Tpo和.Plo是什么?autoreconf -i如何帮助解决与它们相关的问题?为什么这在依赖于automake的项目的README或INSTALL文档中都没有提到? - PypeBros
我不知道这些是什么,但它解决了我的问题,我试图在ARM上编译SPEC工具中的rxp-1.5.0。所以感谢您。 - Chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接