Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2714 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Erreur de compilation avec un makefile

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Erreur de compilation avec un makefile

n°297895
lalles
Posté le 31-01-2003 à 13:46:32  profilanswer
 

Bonjour,
 
J'utilise borland c++ 5.5 Builder.
J'ai réalisé une appli de test (fenetre popup avec un text) pour tester l'installation du compilateur.
 
Compilation a la ligne de commande :  
bcc32 -tW -c -I"c:\apps\Bcc55\include" -L"c:\apps\Bcc55\lib" hellowin
ilink32 -aa -L"c:\apps\Bcc55\lib" c0w32 hellowin.obj,hellowin,,import32 cw32,,
 
Cela fonctionne.
Si je réalise un makefile, j'ai une erreur:
Unresolved external '_main' referenced from C:\APPS\BCC55\LIB\C0X32.OBJ
 
Je ne comprends pas d'ou vient l'erreur.
 
MAKEFILE:
BCB = c:\apps\bcc55
PROG = hellowin
 
INCLUDEPATH = "$(BCB)\include"
LIBPATH = "$(BCB)\lib"
 
# -------------------------------------------------------------
CFLAGS = -tW -c
LFLAGS = -aa
 
# -------------------------------------------------------------
ALLOBJ = c0x32.obj
ALLLIB = import32.lib cw32.lib
 
# -------------------------------------------------------------
BCC32 = $(BCB)\bin\bcc32
LINKER = $(BCB)\bin\ilink32
 
#--------------------------------------------------------------ALL:
    $(LINKER) $(LFLAGS) -L$(LIBPATH) $(PROG).obj $(ALLOBJ),$(PROG),,$(ALLLIB),,
 
# -------------------------------------------------------------
$(PROG).obj:
    $(BCC32) $(CFLAGS) -I$(INCLUDEPATH) -L$(LIBPATH) $(PROG)

mood
Publicité
Posté le 31-01-2003 à 13:46:32  profilanswer
 

n°297957
HelloWorld
Salut tout le monde!
Posté le 31-01-2003 à 14:59:33  profilanswer
 

Ben c'est assez clair : il trouve pas main ...
faut lui dire (comment, arf ... je sais pas trop) que ton prog est un WinMain.
J'avais un peu bataillé, et j'avais trouvé que la fonction qui appelle WinMain (courament appelee startup code / crt0) se trouvait dans un obj particulier.
Cette fonction semble avoir un attribut genre "entry point fonction" que le linker détecte et utilise comme point d'entree (le linker de BC++ n'a pas d'option /ENTRY comme VC++)
DOnc faut lui fournir en parametre un fichier obj contenant cette fameuse startup routine qui appelle WinMain.
J'avais essayé de faire la mienne (pour réduire la taille des exe) mais je m'y etais cassé les dents. Car Borland ne fournit pas le source de ses crt0.
Essai de remplacer c0w32.obj par une autre (regarde ou elle se trouve (dans \LIB je crois), cherche parmis ses soeurs (recherche celle qui contient le symbol WinMain)).
C'est bizarre quand meme, car le w32 semble spécifier Windows 32 ...
arf attend, tente de changer la ligne
ALLOBJ = c0x32.obj
en
ALLOBJ = c0w32.obj
 
ben oui kel kon, j'ai mal lu ton post :
"Compilation a la ligne de commande :  "
"Cela fonctionne."
 
bon ben ca devrait etre cette ligne alors ;)
"
Compilation a la ligne de commande :  


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°297986
lalles
Posté le 31-01-2003 à 15:14:50  profilanswer
 

Faut qu'on m'explique,
 
Si je remplace c0x32.obj par c0w32.obj dans le makefile, cela fonctionne
 
Merci

n°297992
HelloWorld
Salut tout le monde!
Posté le 31-01-2003 à 15:17:41  profilanswer
 

j'ai explique.
En gros :
   si main => c0x32.obj
   si WinMain => c0w32.obj


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°298012
Kristoph
Posté le 31-01-2003 à 15:27:37  profilanswer
 

En effet, si tu fait une appli console, il faut c0x32.obj, si tu fais une appli fenetrée c'est c0w32.obj
 
Normallement, l'IDE est censé faire le travail pour toi :)

n°298067
lalles
Posté le 31-01-2003 à 16:09:23  profilanswer
 

OK
Merci, c'était tout con


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Erreur de compilation avec un makefile

 

Sujets relatifs
[C] message d erreur a la compilation (linking)[ORACLE][PHP] erreur ORA-12154 intermittente
[Tomcat] Erreur lors du déploiement d'une web-app[C] Erreur 'multiple definition' à la compiliation !!?
[VB6] erreur 430 avec Windows 98 et le FileSystemObjectErreur en pascal, je pige pas???
(quiche inside) Vous avez des exemples de makefile pour voir ?Où est l'erreur??
[JS] aidez moi a trouver l'erreur svp 
Plus de sujets relatifs à : Erreur de compilation avec un makefile


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR