Probleme ligne de commande gcc

Div -  
 Div -
Bonjour,

j'ai un soucis, j'imagine de compilation:
j'ai un fichier c++ (test.cpp par exemple), 2 headers (h1.h et h2.h) et une dll (h1.dll)
j'ai bien les #include "h1.h" dans mon fichier cpp.
lors de la compilation avec gcc, jai des erreurs du genre "undefined reference to" puis le nom de plusieurs fonctions dont les prototypes sont dans h1.h.
J'arrive à compiler test.cpp pour obtenir test.o, mais je n'arrive pas à faire la suite pour obtenir le test.exe.
Quelle serait la/les commandes avec gcc pour ça? j'ai l'impression qu'il y a un probleme de commande gcc / link...

Merci de votre aide
A voir également:

16 réponses

Div
 
J'avais essayé avec -l h1.dll ou -L h1.dll dans la ligne de commande mais j'avais les "undefined reference".
j'ai aussi essayé avec un projet sous Dev-C++, lors de la compilation (cette fois sans ligne de commande mais en cliquand sur le bouton) il me ressortait les mêmes erreurs.
1
dubcek Messages postés 19033 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
hello
après -L il faut un nom de répertoire contenant les librairies
avec -l library il cherche une librairie appellée liblibrary.a (sur windows, je ne sais pas)
-I dir précise un répertroire ou se trouvent les .h
1
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Utilise : gcc ... -lh1 (L minuscule et ne spécifie pas le .dll).
1
Div
 
j'ai la même réponse...
1
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Sait-on jamais, gcc -L./ -lh1
Si ça ne marche pas, dis-nous si tu programmes sur Vista ou sur cygwin, et autre.

Cdlt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Div
 
la commande "gcc -L./ -lh1" me retourne un autre probleme maintenant:

C:/MinGW/bin...../libmingw32.a(main.o)(.text+0x97):main.c: undefined reference to 'WinMain@16'

il n'y a plus qu'un "undefined reference" en erreur, et ce n'est pas le même qu'avant
1
Div
 
j'ai oublié:
je suis sous windows xp, j'ai voulu travailler sous eclipse + CDT +MinGW +MSYS, mais j'arrive pas à configurer correctement la compilation donc je suis allé compiler à la main dans le répertoire de mon projet
1
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Déjà, ça serait bien que tu travailles avec g++ au lieu de gcc, ça permettrait d'éliminer toutes autres sources d'erreurs. Et retente g++ -ldll -L./ (si bien sûr ta dll est dans le répertoire courant)
Sinon que donne : g++ test.c -o test.exe h1.dll ?
Cdlt
1
Div
 
la premiere me renvoie l'erreur avec WinMain
la seconde reliste tous les undefined reference
1
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
A priori, tu as dû créer un projet Win32, et tu n'as pas mis d'entrée WinMain d'où le message d'erreur.
Donc soit, tu recrées un type de projet console, soit tu dois mettre WinMain au lieu de main. Voici son prototype : int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd);
Cdlt
1
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Salut,
Tu utilises un compilateur C pour du C++. Utilise plutôt g++.
Sinon, as-tu pensé à utiliser le switch l de gcc pour linker ta dll ?
Cdlt
0
Div
 
jai fait mon projet sous eclipse+CDT et je vois pas où choisir console ou windows...jai installé dev C++ car je sais qu'on peut choisir facilement en créant un projet, jai donc choisi console, mais jai les undefined reference qui reviennent
0
Div
 
g++ -L./ -lh1
me retourne toujours l'erreur du WinMain, avec pourtant un projet créé en mode console
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Juste pour vérifier, remplace int main(...) par int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
Et recompile avec g++ -L.\ -lh1
0
Div
 
toujours le problème WinMain...
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Peux-tu poster ton fichier test.cpp ?
0
Div
 
je suis désolé fiddy mais je ne peux pas. Je reprend un projet qui m'interdit de diffuser le code; en revanche si vous avez des demandes plus précises sur le code je pourrai toujours vérifier ou poster un bout de code.

Merci de votre aide.
0