Я пытаюсь добавить новый двоичный файл в старый проект, написанный на C/C++, на моей машине с Ubuntu 14.04. Сначала мне нужно запустить ./setup_configure
, который запускает следующий скрипт:
#!/bin/tcsh -f
2
3 # For a new dev/ environment, before running configure,
4 # and anytime after a Makefile.am file has changed,
5 # the following commands must be executed within the
6 # dev/ directory:
7
8 set cmd1=(rm -rf autom4te.cache)
9 if ( "`uname -s`" == "Darwin" ) then
10 set cmd2=(glibtoolize --force)
11 else
12 #set cmd2=(libtoolize --force)
13 set cmd2=(libtoolize -f -v)
14 endif
15 set cmd3=(aclocal)
16 #automake --add-missing is necessary because config.sub
17 # and config.guess are links, and make not be present,
18 # so if missing, --add-missing will add them for this
19 # platform
20 #set cmd4=(automake --add-missing -Wno-portability)
21 set cmd4=(automake -a -c)
22 set cmd5=(autoreconf --force -Wno-portability)
23 #automake Note: autoreconf --force runs automake
24 set cmd6=(autoconf -Wno-portability)
25
26 echo $cmd1
27 $cmd1
28 if ($status) exit $status
29 echo $cmd2
30 $cmd2
31 if ($status) exit $status
32 echo $cmd3
33 $cmd3
34 if ($status) exit $status
35 echo $cmd4
36 $cmd4
37 #if ($status) exit $status
38 echo $cmd5
39 $cmd5
40 if ($status) exit $status
41 echo $cmd6
42 $cmd6
43 if ($status) exit $status
44
45 # The first three commands create the platform specific
46 # tools needed by configure (use glibtoolize on the Mac
47 # in place of libtoolize). These platform specific tools
48 # are placed in the dev/config directory.
49 # Autoreconf --force and automake create the Makefile.in
50 # files from the Makefile.am files in each directory.
51 # Following successful execution of these commands, the
52 # configure command can be executed.
53
и после этого мне нужно запустить ./configure. Поскольку я не хочу компилировать весь проект, я cd
в новый подкаталог, который я добавил, и запускаю make
, однако процесс идет не гладко и заканчивается следующей ошибкой:
/bin/bash ../libtool --tag=CC --mode=link g++ -I../include -L/usr/lib64 -L/usr/X11R6/lib64 -L/opt/mni_library/lib -L/opt/vxl/build/lib -o mri_segment_ms mri_segment_ms.o ../utils/libutils.a ../fsgdf/libfsgdf.a ../rgb/librgb.a ../unix/libunix.a ../dicom/libdicom.a ../hipsstubs/libhipsstubs.a ../log/liblog.a ../xml2/libxml2.a ../jpeg/libjpeg.a ../tiff/libtiff.a ../expat/libexpat.a -lz -lm -lcrypt -ldl -lpthread -lnetcdf -lvolume_io -lminc -lvnl_algo -lvnl -lvcl -lnetlib -lv3p_netlib
../libtool: line 469: CDPATH: command not found
libtool: Version mismatch error. This is libtool 2.4.2 Debian-2.4.2-1.7ubuntu1, but the
libtool: definition of this LT_INIT comes from an older release.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.2 Debian-2.4.2-1.7ubuntu1
libtool: and run autoconf again.
make: *** [mri_segment_ms] Error 63
Я нашел много вопросов и ответов относительно подобной проблемы в Интернете, большинство из которых предлагает пользователю запустить autoreconf -ivf
. В Stackoverflow также есть исчерпывающий ответ здесь и здесь. Я выполнил все предложенные шаги, к сожалению, проблема не устранена. Мне было интересно, может ли кто-нибудь дать мне подсказку.
РЕДАКТИРОВАТЬ: то же самое произойдет, если я попытаюсь make
из корневого каталога всего проекта.
setup_configure
? - person Etan Reisner   schedule 10.09.2014dev/
и увидели успешное выполнение этих команд? - person Etan Reisner   schedule 10.09.2014dev/
и он заканчивается этим:acinclude.m4:505: AX_TIX_INITCHECK is expanded from... configure.in:3436: the top level setup_configure complete. now run ./configure
- person Arman   schedule 10.09.2014autoreconf -fvi
у вас не работает, но ваш сценарий кажется слишком сложным. Проблема исчезает, когда вы тщательно очищаете каталог? При использовании некоторых систем контроля версий он должен позволять вам их очищать (например,git clean -dfx
, будьте осторожны с этим), иначе я бы попробовалmake distclean
. - person Pavel Šimerda   schedule 21.09.2014