Lier un fichier .tcl et un fichier tcl/tk ??

Résolu/Fermé
Lepingle - 7 mars 2008 à 10:41
 Lepingle - 7 mars 2008 à 13:26
Bonjour,
Je suis en train de développer un projet qui possède une interface graphique écrite en tcl/tk et qui doit envoyer et des données à un programme C qui va les traiter puis renvoyer les résultats à l'interface.
J'ai fini l'interface, et je vois comment faire pour faire mon programme C, mais le gros problème, c'est que je sais pas comment faire pour lier mon programme C et mon programme TCL pour créer un exécutable.

Je sais qu'il faut créer un interpréteur tcl (grâce aux bibliothèque TCL/TK) dans le programme C qui va appeler le fichier tcl.

J'ai tenté quelque chose comme ça:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <tcl.h>
#include <tk.h>

int Launch_Interface(Tcl_Interp *interp);

/****************************************************************
* MAIN *
****************************************************************/

int main()
{
// little trick for the tcl library:
char **arg2, *arg1, arg='1';
arg1 = &arg;
arg2 = &arg1;

// Choosing:
//Tcl_Main(1,arg2,Launch_Choose);
Tcl_Main(1,arg2,Launch_Interface);
Tk_MainLoop();

return TCL_OK;
}

int Launch_Interface(Tcl_Interp *interp)
{
// Initialisation TCL:
if (Tcl_Init(interp) != TCL_OK) {
fprintf(stderr, "Tcl_Init failed: %s\n", interp->result);
return TCL_ERROR;
}
// Initialisation TK:
if (Tk_Init(interp) != TCL_OK) {
fprintf(stderr, "Tk_Init failed: %s\n", interp->result);
return TCL_ERROR;
}

printf("fin chargement \n");

// On donne la main au Window Manager:
Tk_MainLoop();

return TCL_OK;
}

Je le compile avec DevCpp v4.9.9.2 et j'obtiens des erreurs:
[Linker error] undefined reference to `_imp__Tcl_Main'
[Linker error] undefined reference to `Tk_MainLoop'
[Linker error] undefined reference to `_imp__Tcl_Init'
[Linker error] undefined reference to `Tk_Init'
[Linker error] undefined reference to `Tk_MainLoop'
ld returned 1 exit status
M:\Licence_Pro_SEICOM\Projet_Tutore\test\c_tcl\DEV1\Makefile.win [Build Error] [DEV1.1] Error 1

Merci d'avance

1 réponse

ReBonjour
Je viens de trouver pourquoi DevCpp me donnait des erreurs:
il fallait dans option du projet/parametre/editeur de lien, rajouter le fichier contenue dans le dossier lib de tcl.

Je ne sais toujours pas si c'est bien la bonne manière de créer un interpreteur.
0