web-dev-qa-db-fra.com

Problème de compilation du programme d'échecs scid

Tout d’abord, je voudrais souligner que je suis nouveau sur Ubuntu, donc je suis désolé si ce que je demande est ridicule.

J'ai téléchargé le programme d'échecs Scid 4.4 et j'ai essayé de le compiler comme il a été expliqué sur son site web:

1) Initialiser git.

2) Créez un dossier dans lequel vous souhaitez télécharger et (?) Compiler la source, puis transformez: git init sur votre ligne de commande.

3) Vous êtes maintenant prêt à télécharger les sources. Rappelez le sort de Fulvio: git clone git: //scid.git.sourceforge.net/gitroot/scid/scid Ceci devrait vous procurer la dernière source Scid.

4) Vous êtes maintenant prêt à compiler Scid. En principe, tout ce que vous avez à faire est: ./configurez puis effectuez

5) Si vous êtes bloqué, vous aurez probablement besoin de versions de développeur de tcl/tk. Cela se traduit par l'émission de ces trois commandes: Sudo apt-get installer tcl8.5-dev Sudo apt-get installer tk8.5-dev Sudo apt-get installer zlib1g -dev

6) Vous devriez maintenant être prêt à compiler

Le problème est que lorsque je lance ./configure pour commencer à compiler le message suivant apparaît sur Terminal:

configure: programme de configuration Makefile pour 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.

Que devrais-je faire? Est-ce que quelqu'un a déjà fait face à ce problème? Merci d'avance


J'ai couru

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

voici le résultat:

-rw-r - r-- 1 racine racine 87291 le 22:45 /usr/include/tcl8.5/tcl.h

J'ai aussi essayé ce que vous suggérez

Pourriez-vous exécuter git reset --hard HEAD et git clean -d -f pour tout nettoyer à l’aide de Git? Ensuite, exécutez à nouveau ./configure. Juste un coup dans le noir - j'ai vu quelques GNU automake écouter toujours leur version "mise en cache" des résultats ou quelque chose du genre.

Toujours pas de solution. Je ne sais pas pourquoi il ne peut pas reconnaître la bibliothèque alors qu'elle est installée


J'ai ouvert configure pour voir où le programme cherchait la bibliothèque. C'est le code:

# 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

Donc je suppose (et je suppose par là que je ne sais pas comment coder) je devrais écrire quelque part ici usr/lib/tcl8.5 et usr/lib/tk8.5, n’ai-je pas raison?

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

Cela signifie que vous manquez les bibliothèques Tcl et Tk (packages de développement).

Installer tcl8.5-dev Install tcl8.5-dev et tk8.5-dev Install tk8.5-dev et vous devriez être tous ensemble.

Comment ai-je trouvé cela? Utilisez la recherche sur les chemins du site http://packages.ubuntu.com :

enter image description here


Avant d'installer les packages:

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

Après avoir installé les paquets:

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

Vous voyez, c'est très similaire et il est facile d'oublier que cela réussit maintenant.

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

Eu le même problème avec Ubuntu 13.04. Impossible de compiler bien que j'avais installé les packages nécessaires. Le problème semble être que scid cherche dans/usr/lib les bibliothèques tcl et tk, bien qu'elles soient installées dans/usr/lib/x86_64-linux-gnu, comme vous pouvez le constater en cliquant avec le bouton droit de la souris sur le gestionnaire de paquets. tcl8.5-lib et en sélectionnant Propriétés/Fichiers installés.

La solution consiste à créer liens symboliques vers ces bibliothèques dans le répertoire/usr/lib:

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

J'espère que ça t'as aidé.

2
fabianLinux

Dans mon cas, la modification du script de configuration a fonctionné. J'ai ajouté /usr/lib/i386-linux-gnu à la liste libraryPath (ligne 167)

0
Antonio

Essayez simple:

Sudo apt-get install scid
0
Mateusz