#1 Le 29/08/2007, à 09:57
- Le Barde
[RÉSOLU] Undefined reference... configurer qmake ?
Bonjour, j'ai un problème d'inclusion de librairie, enfin je crois ; le make me donne ceci :
cd '/home/adrien/Documents/Travail/Informatique/ProjetDev/EssaiLUA/EssaiLua' && LD_LIBRARY_PATH="/usr/lib/" QTDIR="/usr/share/qt3" make -j1
cd src && make -f Makefile
make[1]: entrant dans le répertoire « /home/adrien/Documents/Travail/Informatique/ProjetDev/EssaiLUA/EssaiLua/src »
test -d ../bin/ || mkdir -p ../bin/
g++ -o ../bin/essailua essailua.o -L/usr/share/qt3/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm -lpthread
essailua.o: In function `main':
essailua.cpp:(.text+0x9e): undefined reference to `lua_open()'
essailua.cpp:(.text+0xa6): undefined reference to `lua_close(lua_State*)'
collect2: ld a retourné 1 code d'état d'exécution
make[1]: *** [../bin/essailua] Erreur 1
make[1]: quittant le répertoire « /home/adrien/Documents/Travail/Informatique/ProjetDev/EssaiLUA/EssaiLua/src »
make: *** [sub-src] Erreur 2
*** Exited with status: 2 ***
Voici le code de mon fichier appli Application.cpp :
#include <iostream>
#include <cstdlib>
#include <lua50/lua.h>
#include <lua50/lualib.h>
#include <lua50/lauxlib.h>
int main(int argc, char *argv[])
{
std::cout << "Coucou !" << std::endl;
lua_State * state;
// on créer un contexte d'exécution de Lua
state = lua_open();
// on charge les bibliothèques standards de Lua
/*
luaL_openlibs(state);
// on lance le script lua
if (luaL_dofile(state,"script.lua")!=0)
{
// il y a eu une erreur dans le script
std::cout << stderr << "%s\n" << lua_tostring(state,-1) << std::endl;
exit(0);
}
*/
lua_close(state);
return EXIT_SUCCESS;
}
Quelqu'un aurait une idée ?
Et voici le fichier de projet .pro :
TEMPLATE=subdirs
SUBDIRS=src
Vide, quoi...
Dernière modification par Le Barde (Le 29/08/2007, à 13:08)
Hors ligne
#2 Le 29/08/2007, à 10:19
- trucutu
Re : [RÉSOLU] Undefined reference... configurer qmake ?
Je me trompe peut être, mais je ne vois pas le lien avec la lib lua dans ta ligne de commande
-L.... -l..
Après un parcours rapide de la doc, je ne vois pas les flags qu'il faut ajouter, dsl...
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#3 Le 29/08/2007, à 10:38
- Le Barde
Re : [RÉSOLU] Undefined reference... configurer qmake ?
On m'a dit qu'il fallait rajouter -llua50... ^^
Où est-ce qu'on rajoute le flag dans un .pro ?
Hors ligne
#4 Le 29/08/2007, à 10:42
- Le Barde
Re : [RÉSOLU] Undefined reference... configurer qmake ?
En attendant de le mettre dans le .pro, j'ai essayé plusieurs flags :
-lua, -llua, -llua50, -lua50...
Et de toutes, c'est -llua50 qui fonctionne, enfin qui ne donne pas de message d'erreur comme quoi on ne trouve pas -luatruc. Par contre j'ai toujours les mêmes messages d'erreur "undefined reference" :'(
Hors ligne
#5 Le 29/08/2007, à 10:48
- trucutu
Re : [RÉSOLU] Undefined reference... configurer qmake ?
C'est quoi un .pro ??
Enfin, passons.
Il faut qu'il y ait aussi le chemin où se trouve cette librairie (liblua50.so, je suppose)
-L/usr/lib/lua50 -llua50 ... un truc dans le genre
Dernière modification par trucutu (Le 29/08/2007, à 10:49)
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#6 Le 29/08/2007, à 11:06
- Le Barde
Re : [RÉSOLU] Undefined reference... configurer qmake ?
Pour le -L/usr/lib/lua50 -llua50, je cherche je cherche, mais en ajoutant ça à la commande de g++, le compilo n'est pas plus, pas moins volubile... Je ne comprends pas.
(Pour mémoire, QMake est un petit programme qui permet de générer un Makefile. On écrit une liste de tous les sources utilisés, tous les en-têtes, on peut ajouter une ou deux spécifications, on nomme le fichier Machin.pro et on lance qmake Machin.pro. Ça génère ainsi un Makefile, ce qui permet par exemple de développer sans avoir d'IDE et sans avoir besoin de se creuser les neurones pour le Makefile.)
Hors ligne
#7 Le 29/08/2007, à 11:34
- trucutu
Re : [RÉSOLU] Undefined reference... configurer qmake ?
Une petite chose. Tes .o, ils sont compilés comment ? il y a bien des -I vers les fichiers d'include ? (question un bête, gcc serait pas content sinon, mais sait-on jamais...)
Sinon, il n'ya qu'un seul fichier de librairie où il y a t'il des "sous librairies" avec lesquelles il faudrait linker aussi ?
Tu peux savoir si lua_open est bien défini dans liblua50.so par ldd je crois. Sinon, il faudrait aussi parcourir la doc pour trouver les bons flags à ajouter...
Voilà, tout un tas de petits trucs à tenter...
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#8 Le 29/08/2007, à 12:28
- Le Barde
Re : [RÉSOLU] Undefined reference... configurer qmake ?
Une petite chose. Tes .o, ils sont compilés comment ? il y a bien des -I vers les fichiers d'include ? (question un bête, gcc serait pas content sinon, mais sait-on jamais...)
-> Normalement c'est bon, puisque lua_open() est reconnu ; tous les fichiers en-têtes d'include sont bons et reconnus (ça l'a toujours été).
Sinon, il n'ya qu'un seul fichier de librairie où il y a t'il des "sous librairies" avec lesquelles il faudrait linker aussi ?
-> Je suis allé voir sans Synaptic où les libs ont été installées :
/usr
/usr/lib
/usr/lib/liblua50.a
/usr/lib/pkgconfig
/usr/lib/pkgconfig/lua50.pc
/usr/include
/usr/include/lua50
/usr/include/lua50/lua.h
/usr/bin
/usr/bin/lua-config50
/usr/share
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/lua-config50.1.gz
/usr/share/doc
/usr/share/doc/liblua50-dev
/usr/share/doc/liblua50-dev/NEWS.Debian.gz
/usr/share/doc/liblua50-dev/copyright
/usr/share/doc/liblua50-dev/changelog.Debian.gz
/usr/lib/liblua50.so
/usr/include/lua50/lua
Donc clairement les libs sont dans /usr/lib, à la racine. :'(
Tu peux savoir si lua_open est bien défini dans liblua50.so par ldd je crois. Sinon, il faudrait aussi parcourir la doc pour trouver les bons flags à ajouter...
-> Wah, ldd je ne connais pas, je vais faire un tour & regarder comment ça fonctionne... Et je vais ensuite voir la doc.
Voilà, tout un tas de petits trucs à tenter...
Hors ligne
#9 Le 29/08/2007, à 12:40
- trucutu
Re : [RÉSOLU] Undefined reference... configurer qmake ?
Hep, je vois que tu as un truc nommé pkgconfig.
Pour info, avec la lib Gtk, tu génères tes flags par un pkg-config --cflags ...
pkg-config --cflags ... (CFLAGS)
pkg-config --libs ... (LDFLAGS)
A voir si c'est dans le même genre...
La chanson du dimanche - "La pêche !"
PC acheté chez Novatux : entièrement satisfait.
Faire des recherches solidaires !
Hors ligne
#10 Le 29/08/2007, à 12:53
- Le Barde
Re : [RÉSOLU] Undefined reference... configurer qmake ?
Ah oui, et voilà ce que ça me donne :
adrien@adrien-portable:~/Documents/Travail/recherche/StageFlowShop/C++$ pkg-config --cflags lua50
-I/usr/include//lua50
adrien@adrien-portable:~/Documents/Travail/recherche/StageFlowShop/C++$ pkg-config --libs lua50
-llua50
Donc c'est bon, le flag --llua50 est bon...
Par ailleurs, je viens de me faire un petit hello world en C (sachant que ce qui pose problème est peut-être lié à g++ et le C++...) :
#include <stdio.h>
#include <lua50/lua.h>
#include <lua50/lualib.h>
#include <lua50/lauxlib.h>
int main(int argc, char *argv[])
{
printf("Coucou !\n");
lua_State * state;
// on créer un contexte d'exécution de Lua
state = lua_open();
// on charge les bibliothèques standards de Lua
/*
luaL_openlibs(state);
// on lance le script lua
if (luaL_dofile(state,"script.lua")!=0)
{
// il y a eu une erreur dans le script
printf( "BÂH !!" );
exit(0);
}
*/
lua_close(state);
return 0;
}
Et là, avec le flag -llua50, ça compile !
Par contre les autres fonction que j'ai commentées ne fonctionnent pas, elles viennent d'une autre lib, bizarre :'(
J'ai intégré le flag à mon projet, et maintenant, ça marche !
Enfin pour les lua_open() et lua_close()... Pas les autres. Je vais appliquer la même méthode.
Merci ! (c'est peut-être pas fini )
Le Barde.
EDIT : voilà, [RÉSOLU], c'était -llualib50 :aie:
Merci beaucoup
Dernière modification par Le Barde (Le 29/08/2007, à 13:07)
Hors ligne
#11 Le 09/09/2007, à 12:05
- tchonny
Re : [RÉSOLU] Undefined reference... configurer qmake ?
Bonjour,
Je profite de ce post pour exprimer ma solitude face au même problème, ou du moins apparent, que Le Barde a rencontré.
J'utilise les mêmes flags que Mr.Barde, cependant, la compilation marche quand je compile avec gcc, et me renvoie un undefined reference to lua_open()... quand je compile avec g++ ...
Si quelqu'un a une idée, ou peut m'expliquer, si Mr.Barde repasse par là à tout hasard (:
Hors ligne
#12 Le 09/09/2007, à 20:03
- Le Barde
Re : [RÉSOLU] Undefined reference... configurer qmake ?
Hello,
Tu compiles à la main, et ça ne fonctionne pas ?
On peut regarder ta commande de compilation ?
Hors ligne