Utiliser Lua dans du C [Lua] - C - Programmation
Marsh Posté le 17-11-2007 à 11:23:21
Et si tu nous donnais le message d'erreur de ton compilo?
Marsh Posté le 17-11-2007 à 14:57:38
Oui, trés juste, j'ai oublié l'essentiel ... XD
Code :
|
Marsh Posté le 17-11-2007 à 15:05:42
rc_jk78 a écrit : Je n'arrive pas à compiler, pourtant, j'ai bien linké les librairies: |
Pourtant le message d'erreur dit justement que le linker n'a pas pas reussi a trouver les fonctions lua, comme si tu avais oublie de lui preciser de linker avec la lib lua. Quel environnement utilises-tu, et comment as-tu installe la lib lua ?
Marsh Posté le 17-11-2007 à 15:26:22
J'utilise CodeBlock.
Ce que j'ai fait, j'ai chopé les sources sur lua.org, puis j'ai placé tous les .cet .h dans un sous dossier 'lua' de mon projet. Et je link vers les 4 headers, comme indiqué ds le readme:
#include "lua\lua.h"
#include "lua\lualib.h"
#include "lua\lauxlib.h"
Apres, je ne sais pas trop ce que ca devrait donner...
Marsh Posté le 17-11-2007 à 15:36:28
Tu as dû oublier d'inclure la bibliothèque au linker.
C'est une option -l<le nom de la bibliothèque LUA à inclure> à ajouter dans les options du compilateur.
Marsh Posté le 22-11-2007 à 20:37:36
dsl, j'ai pas eu l'occaz de retoucher à lua cette semaine... je verrais peut etre ce we
merci en tout cas
Marsh Posté le 22-11-2007 à 21:06:15
rc_jk78 a écrit : Et je link vers les 4 headers |
On ne "link" pas vers des headers.
Ton probleme vient probablement de ta confusion entre la phase d'edition de liens et celle de compilation.
Si je simplifie :
fichier C avec inclusions de .h ------ preprocessing ------> code C ------- compilation -----> fichier .o -------- edition de liens (link) ------> fichier executable
Une librairie de developpement, sous sa forme binaire, se compose generalement d'un ou plusieurs fichiers .h a inclure dans un fichier C, et d'un fichier .a, qui contient le code executable de la librairie.
Au preprocessing, tout se passe comme si le contenu de fichier.h etait copie-colle a l'endroit ou tu fais #include "fichier.h".
A la compilation, la librairie n'intervient pas.
A l'edition de lien, il faut que tu precises au linker ou il doit aller chercher le code des fonctions de ta librairie. Ce code se trouve donc dans ton .a (ou .lib sous certains compilateurs), et si ton fichier est, par exemple libMachin.a, il faut le placer dans le repertoire "lib" de ton compilateur et rajouter a ta ligne de commande -lMachin, comme l'a precise Elmoricq.
Marsh Posté le 23-11-2007 à 11:22:35
rc_jk78 a écrit : Oui, trés juste, j'ai oublié l'essentiel ... XD
|
Ca fait bizarre de mettre l'executable dans un repertoire aussi different de celui ou tu code? tu ne t'es pas trompé dans les chemins?
Marsh Posté le 02-12-2007 à 16:50:28
Problème résolu rc_jk78 ?
Parce que vu ce que tu décris c'est simplement un oublie de ta part lorsque tu as spécifié au linker le chemin vers la lib Lua (Lua.1.5.a je crois pour Code::Block) comme l'a dit Elmoricq et l'a très bien expliqué Ace17 . Ou alors ça vient d'autre part...
Et justement, j'ai eu pour ma part un problème similaire intervenant à l'édition des liens mais sous Visual Studio. J'ai pourtant bien préciser le chemin vers la lib Lua et pourtant le linker refusait de lier les fichiers en me mettant des "undefined Reference" comme toi. L'erreur venait en fait du header inclus : il ne fallait pas mettre lua.h, lualib.h et lauxlib.h mais seulement lua.hpp qui contient déjà les headers cité mais correctement défini pour être compilé avec un compilateur C++.
Tu utilises GCC ce qui devrait normalement te faire compiler en C et donc ne pas avoir la même erreur que moi. Mais si malgrès tout ça ne marche toujours pas, tu peux essayer en mettant lua.hpp et voir ce que ça donne. Au pire t'as une erreur de compilation et tu sera sûr que le problème vient bien de la définition des library à utiliser dans ton projet.
Marsh Posté le 16-11-2007 à 23:05:12
Salut à tous !
Je cherche à utiliser LUA dans du C. Le seul hic, c'est que j'ai des notions de C, mais la programmation de microcontroleurs est bien différente de la programmation pour application: dans le sens où je suis perdus avec ces IDE, avec ces compilateurs...
Bon, mon idée, c'est de suivre suivre ce tuto : http://mdeverdelhan.developpez.com [...] tutoriel1/ mais, je me retrouve bloqué à la fin du II.
Je n'arrive pas à compiler, pourtant, j'ai bien linké les librairies:
MAis bon, impossible à compiler, ni même éxécuter ce code de base
Merci de votre aide!