Tcl/Tk неправильно установлен на моем компьютере

В настоящее время я пытаюсь установить xgrafix с сайта PTSG. Запуск конфигурации в папках xgrafix Я столкнулся с проблемой. Это говорит о том, что я должен убедиться, что Tcl / Tk установлен правильно, и перезапустить конфигурацию. Я попытался удалить и переустановить Tcl и Tk без какой-либо удачи.

Кроме того, я попытался использовать разные версии Tcl / Tk, если они несовместимы с последним обновлением. Я новичок в использовании Linux, поэтому, если у вас есть какие-либо советы по его исправлению, это будет очень признательно.

configuring with options: --prefix=/usr/local --with-SCALAR=double --enable-fulloptimize --with-XGRAFIX-lib=/usr/local/lib --with-XGRAFIX-include=/usr/local/include 
configure: WARNING: unrecognized options: --with-XGRAFIX-lib, --with-XGRAFIX-include
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
Using C++ compiler g++
Using C compiler gcc
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for library containing strerror... none required
checking whether time.h and sys/time.h may both be included... yes
checking for BSD-compatible nm... 
/usr/bin/nm -B
Setting the flags per system and C++ compiler: g++
checking for g++... /usr/bin/g++
Serial C++ compiler is `g++'
checking g++ version... g++
configure: WARNING: Caution: version  is not known to work.
configure: WARNING: C++ compiler may generate code for this processor only.
checking for -fsquangle... no
checking how to build libraries... with ar cr  
checking for gcc... /usr/bin/gcc
Serial C compiler is `gcc'
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C preprocessor... gcc -E
checking how to run the C++ preprocessor... g++ -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for size_t... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking whether c++ compiler supports exception handling... yes
checking whether c++ compiler supports typename... yes
checking whether c++ compiler can explicitly instantiate templates... yes
checking whether c++ compiler supports RTTI... yes
checking whether c++ compiler supports namespaces... yes
checking whether c++ compiler has complex in the namespace std... yes
checking whether c++ compiler has streams in the namespace std... yes
checking whether c++ compiler can overload const type conversions... yes
checking whether c++ compiler knows mutable... yes
checking whether template friends need brackets... yes
checking whether nontype template operators are allowed... no
checking whether static variables can be declared generally... yes
configure: WARNING: Fortran libraries will be invalid.
checking whether make sets $(MAKE)... (cached) yes
checking whether ln -s works... yes
checking for ranlib... ranlib
checking what the library suffix is... .a
checking how to install libraries... with ${INSTALL} -m 644
configure: WARNING: x11.m4 is obsolete.  Please use AC_PATH_X or AC_PATH_XTRA.
checking for X11/Xlib.h... /usr/include/X11/Xlib.h
checking for libX11.a... /usr/lib/x86_64-linux-gnu/libX11.a
checking for libXpm.a... /usr/lib/x86_64-linux-gnu/libXpm.a
checking for tclsh... /usr/bin/tclsh
checking for tclConfig.sh... /usr/lib/x86_64-linux-gnu/tclConfig.sh
checking for tkConfig.sh... /usr/lib/x86_64-linux-gnu/tkConfig.sh
checking for libtcl8.6.a... no
checking for libtcl8.6.so... no
configure: error: Make sure Tcl/Tk are installed correctly on your
 system and then rerun configure.

3 ответа

Кажется, что предоставленный скрипт configure несовместим с текущими системами. Бег autoconf генерация нового скрипта, по-видимому, исправляет ошибки Tcl/Tk, но вводит другие ошибки, связанные с включениями и библиотеками X11.

Я наконец смог получить ./configure чтобы завершить, начав заново со свежесархивированного архива и установив явное TCL_LIBDIR_PATH а также TK_LIBDIR_PATH на ./configure командная строка:

TCL_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ \
TK_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ \
./configure --with-tclsh=/usr/bin/tclsh8.5 \
--with-tclconfig=/usr/lib/tcl8.5 \
--with-tkconfig=/usr/lib/tk8.5

Тем не менее, несмотря на то, что 8,5 указаны в качестве одного из legal_tcl_versions, make завершается с ошибкой, связанной с Tcl

xgsetup.c: In function ‘XGSetupWindow’:
xgsetup.c:145:14: error: ‘Tcl_Interp’ has no member named ‘result’
     if(interp->result != NULL) {
              ^
xgsetup.c:146:27: error: ‘Tcl_Interp’ has no member named ‘result’
       printf("%s\n",interp->result);
                           ^

Следуя СОВЕТУ № 330: исключите interp->result из публичных заголовков, вы можете обойти это, передав флаг -DUSE_INTERP_RESULT на make командная строка:

make CPPFLAGS="-DUSE_INTERP_RESULT"

пакет, казалось, собирался успешно, но я не устанавливал или проверял это.

Я использовал решение от Steeldriver, но мне также пришлось добавить ABS_XLIB_H_PATH=/usr/include и ABS_X11LIB_PATH=/usr/include, чтобы устранить ошибку X11 без директории (/ usr / include следует заменить на путь, где расположен ваш X11, если он не находится в /usr/include).

    TCL_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ 
    TK_LIBDIR_PATH=/usr/lib/x86_64-linux-gnu/ 
    ABS_XLIB_H_PATH=/usr/include ABS_X11LIB_PATH=/usr/include
    ./configure --with-tclsh=/usr/bin/tclsh8.5 
    --with-tclconfig=/usr/lib/tcl8.5 
    --with-tkconfig=/usr/lib/tk8.5

И затем не забудьте запустить make с предложенными флажками:

    make CPPFLAGS="-DUSE_INTERP_RESULT"

Я получил некоторые ошибки для libpng не найден, вероятно, поскольку libpng это lib12png. Это не было жизненно важно для создания сборки, и я думаю, что это можно исправить, заменив libpng на lib12png где-нибудь в файле конфигурации. Кроме того, вероятно, также необходимо добавить правильный путь, используя соответствующий параметр, который также можно найти в файле конфигурации, и который затем выполняется как с "some_path_indetifier_for_lib12png"=/path/to/lib12png/.

Ошибка работает здесь:

проверка на libtcl8.6.a... нет

проверка на libtcl8.6.so... нет

Это указывает на то, что пакет **libtcl8.6** не установлен в вашей системе, вы можете установить его в своей системе:

sudo apt-get install tcl8.6
Другие вопросы по тегам