2009-07-27 6 views
7

Я делаю довольно прямое преобразование существующей библиотеки (libtcod) в Autotools (для счастья OS X) , К сожалению, когда я переключаю Makefile.am правило lib_LIBRARIES на lib_LTLIBRARIES, сборка переходит от успешного к un. Выдержка из ниже выхода:LTLIBRARIES: mv * .Tpo * .Plo, но первое не существует, а последнее уже существует

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 ... 

Могу ли я сделать очевидную ошибку здесь, или должен работать?

ответ

10

Да, я делаю очевидную ошибку. Мне нужно было запустить autoreconf -i для создания непустого сценария ltmain.sh; существующий сделал ../libtool здесь no-op.

+0

Я уже несколько лет бил головой об этой же проблеме. Моя программа отлично справилась с этим, пока я не попробовал ее на openSUSE12.1. Это меня укрепило. –

+3

что такое .Tpo и .Plo, кстати? и как «autoreconf -i» помогает устранить связанные с ними проблемы? и почему это не появляется нигде в документации README или INSTALL проектов в зависимости от automake? – PypeBros

+0

Я понятия не имею, что это такое, но он решил мою проблему в попытке скомпилировать rxp-1.5.0 как часть инструментов SPEC в CPU2006-1.2 на ARM. Так что спасибо за это. – Chris