Les Allergies
Alimentaires
Posez votre question Signaler

Probleme ligne de commande gcc

Div - Dernière réponse le 13 mars 2009 à 16:20
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
Lire la suite 

Probleme ligne de commande gcc »

17 réponses
Réponse
+1
moins plus
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.
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
Utilise : gcc ... -lh1 (L minuscule et ne spécifie pas le .dll).
Ajouter un commentaire
Réponse
+1
moins plus
j'ai la même réponse...
fiddy- 13 mars 2009 à 12:05
Sait-on jamais, gcc -L./ -lh1
Si ça ne marche pas, dis-nous si tu programmes sur Vista ou sur cygwin, et autre.

Cdlt
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+1
moins plus
la premiere me renvoie l'erreur avec WinMain
la seconde reliste tous les undefined reference
Ajouter un commentaire
Réponse
+1
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
g++ -L./ -lh1
me retourne toujours l'erreur du WinMain, avec pourtant un projet créé en mode console
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
toujours le problème WinMain...
Ajouter un commentaire
Réponse
+0
moins plus
Peux-tu poster ton fichier test.cpp ?
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Ce document intitulé « Probleme ligne de commande gcc » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?