Проблема компиляции шахматной программы Scid

Прежде всего, я хотел бы указать, что я новичок в Ubuntu, поэтому извините, если то, что я спрашиваю, смешно.

Я скачал шахматную программу Scid 4.4 и попытался скомпилировать ее, как было объяснено на ее веб-сайте:

1) Инициализировать git.

2) Создайте папку, в которую вы хотите загрузить и (?) Скомпилируйте исходный код, затем приведите: git init в командной строке.

3) Теперь вы готовы к загрузке источников, напоминающих заклинание Фульвио: git clone git: //scid.git.sourceforge.net/gitroot/scid/scid. Это должно дать вам последний источник Scid.

4) Теперь вы готовы к компиляции Scid. В принципе, все, что вам нужно сделать, это: ./configure и затем сделать

5) Если вы застряли, вам, вероятно, нужно получить версии для разработчиков tcl / tk. Это приводит к выдаче этих трех команд: sudo apt-get install tcl8.5-dev sudo apt-get install tk8.5-dev sudo apt-get install zlib1g -dev

6) Теперь вы должны быть готовы к compile

Проблема в том, что при запуске ./configure для начала компиляции на терминале появляется следующее сообщение:

configure: Программа конфигурации Makefile для Scid

    Tcl/Tk version: 8.5
    Your operating system is: Linux 3.8.0-19-generic
    Location of "tcl.h": /usr/include/tcl8.5
    Location of "tk.h": /usr/include/tcl8.5
    Location of Tcl 8.5 library: not found
    Location of Tk 8.5 library: not found
    Checking if your system already has zlib installed: yes.
    Using Makefile.conf.
Not all settings could be determined!
The default Makefile was written.
You will need to edit it before you can compile Scid.

Что мне делать? Кто-нибудь сталкивался с этой проблемой раньше? Заранее спасибо


Я запустил

ls -l /usr/include/tcl8.5/tcl.h

здесь результат:

-rw-r - r-- 1 корневой корень 87291 abr 22 10:45 /usr/include/tcl8.5/tcl.h

[ 1117] Я также попробовал то, что вы предложили

Не могли бы вы запустить git reset --hard HEAD и git clean -d -f, чтобы очистить все с помощью Git? Затем снова запустите ./configure. Просто выстрел в темноте - я видел некоторые вещи из автомата GNU, все еще слушающие его «кэшированную» версию результатов или что-то в этом роде.

Все еще нет решения. Я не знаю, почему он не может распознать библиотеку, хотя она установлена ​​


Я открыл configure, чтобы увидеть, где программа искала библиотеку. Это код:

# libraryPath: List of possible locations of Tcl/Tk library.
set libraryPath {
    /usr/lib
    /usr/lib64
    /usr/local/tcl/lib
    /usr/local/lib
    /usr/X11R6/lib
    /opt/tcltk/lib
    /usr/lib/x86_64-linux-gnu
}
lappend libraryPath "/usr/lib/tcl${tclv}"
lappend libraryPath "/usr/lib/tk${tclv}"
lappend libraryPath "/usr/lib/tcl${tclv_nodot}"
lappend libraryPath "/usr/lib/tk${tclv_nodot}"

# Try to add tcl_library and auto_path values to libraryPath,
# in case the user has a non-standard Tcl/Tk library location:

if {[info exists ::tcl_library]} {
    lappend headerPath \
        [file join [file dirname [file dirname $::tcl_library]] include]
    lappend libraryPath [file dirname $::tcl_library]
    lappend libraryPath $::tcl_library
}
if {[info exists ::auto_path]} {
    foreach name $::auto_path {
        lappend libraryPath $name
    }
}

if {! [info exists var(TCL_INCLUDE)]} {
    puts -nonewline {    Location of "tcl.h": }
    set opt(tcl_h) [findDir "tcl.h" $headerPath "TCL_VERSION.*$tclv"]
    if {$opt(tcl_h) == ""} {
        puts "not found"
        set success 0
        set opt(tcl_h) "$::defaultVar(TCL_INCLUDE)"
    } else {
        puts $opt(tcl_h)
    }
}

set opt(tcl_lib) ""

if {! [info exists var(TCL_LIBRARY)]} {
    puts -nonewline "    Location of Tcl $tclv library: "
    set opt(tcl_lib) [findDir "libtcl${tclv}.*" $libraryPath]
    if {$opt(tcl_lib) == ""} {
        set opt(tcl_lib) [findDir "libtcl${tclv_nodot}.*" $libraryPath]
        if {$opt(tcl_lib) == ""} {
            puts "not found"
            set success 0
            set opt(tcl_lib) "$opt(tcl_h)"
            set opt(tcl_lib_file) "tcl\$(TCL_VERSION)"
        } else {
            set opt(tcl_lib_file) "tcl${tclv_nodot}"
            puts $opt(tcl_lib)
        }
    } else {
        set opt(tcl_lib_file) "tcl\$(TCL_VERSION)"
        puts $opt(tcl_lib)
    }
}

if {! [info exists var(TCL_INCLUDE)]} {
    set var(TCL_INCLUDE) "-I$opt(tcl_h)"
}
if {! [info exists var(TCL_LIBRARY)]} {
    set var(TCL_LIBRARY) "-L$opt(tcl_lib) -l$opt(tcl_lib_file)"
}
return $success

Итак, я предполагаю (и, наверное, я имею в виду, что понятия не имею, как кодировать), я должен написать где-то здесь usr / lib / tcl8.5 и usr / lib / tk8 .5, я прав?

3
задан 28 August 2013 в 00:02

4 ответа

Location of Tcl 8.5 library: not found
Location of Tk 8.5 library: not found

Означает, что вам не хватает библиотек Tcl и Tk (пакеты разработки).

Установите tcl8.5-dev Install tcl8.5-dev и tk8.5-dev Install tk8.5-dev , и все будет готово.

Как я нашел это? Используйте поиск по путям на сайте http://packages.ubuntu.com :

enter image description here


Перед установкой пакетов:

$ ./configure 
configure: Makefile configuration program for Scid
    Tcl/Tk version: 8.5
    Your operating system is: Linux 3.8.0-29-generic
    Location of "tcl.h": not found
    Location of "tk.h": not found
    Location of Tcl 8.5 library: /usr/lib
    Location of Tk 8.5 library: /usr/lib
    Checking if your system already has zlib installed: yes.
    Using Makefile.conf.
Not all settings could be determined!
The default Makefile was written.
You will need to edit it before you can compile Scid.

После установки пакетов:

$ ./configure 
configure: Makefile configuration program for Scid
    Renaming "Makefile" to "Makefile.bak"
    Tcl/Tk version: 8.5
    Your operating system is: Linux 3.8.0-29-generic
    Location of "tcl.h": /usr/include/tcl8.5
    Location of "tk.h": /usr/include/tcl8.5
    Location of Tcl 8.5 library: /usr/lib
    Location of Tk 8.5 library: /usr/lib
    Checking if your system already has zlib installed: yes.
    Using Makefile.conf.
The Makefile configured for your system was written.
Multi-threading enabled (if you have problems try ./configure THREADS="").
Now just type "make" to compile Scid.

Вы видите, это очень похоже, и легко упустить из виду, что это действительно успешно сейчас.

0
ответ дан 28 August 2013 в 00:02

В моем случае изменение скрипта конфигурации работало. Я добавил /usr/lib/i386-linux-gnu в список libraryPath (строка 167)

0
ответ дан 28 August 2013 в 00:02

Попробуйте просто:

sudo apt-get install scid
0
ответ дан 28 August 2013 в 00:02
Location of Tcl 8.5 library: not found
Location of Tk 8.5 library: not found

Была такая же проблема с Ubuntu 13.04. Не удалось скомпилировать, хотя я установил необходимые пакеты. Кажется, проблема в том, что scid ищет в / usr / lib библиотеки tcl и tk, хотя они установлены в / usr / lib / x86_64-linux-gnu, как вы можете видеть, щелкнув правой кнопкой мыши в менеджере пакетов на Пакет tcl8.5-lib и выбор свойств / установленных файлов.

Решением является создание мягких ссылок на те библиотеки в каталоге / usr / lib dir:

sudo ln -s /usr/lib/x86_64-linux-gnu/libtcl8.5.so.0 /usr/lib/libtcl8.5.so.0
sudo ln -s /usr/lib/x86_64-linux-gnu/libtk8.5.so.0 /usr/lib/libtk8.5.so.0

Надежда, которая помогает.

0
ответ дан 28 August 2013 в 00:02

Другие вопросы по тегам:

Похожие вопросы: