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

  FORUM HardWare.fr
  Programmation
  C++

  lib static

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lib static

n°141387
DJKurgan
Posté le 20-05-2002 à 23:36:02  profilanswer
 

Salut! bon c'est tout con,  
mais je ne trouve pas de solution,  
comment fait-t-on lorsque un fichier (sous gcc et linux)  
compile avec une lib static, lorsque ce fichier est en c....  
et que s'il est en c++, (change l'extension en cpp),  
bah ca marche plus, j'ai des undefined ref a toute les fcts  
que j'utilise appartenant à la lib en clair,  
 
en c ca marche, en c++, ca marche plus,  
sachant que je veux du c++... peut-on remedier a ca?

mood
Publicité
Posté le 20-05-2002 à 23:36:02  profilanswer
 

n°141407
SoWhatIn22
Posté le 21-05-2002 à 08:46:35  profilanswer
 

Peut être que ton problème viens des headers (.h).
Quand des fonctions sont compilées avec un compilo C et que l'on veut les utiliser avec un compilo C++, alors il faut changer les headers pour indiquer que ce sont des fonctions C et non pas C++:
 
au lieu de  
---------------------
#ifndef HEADER_H
#define HEADER_H
 
int fonction1( int a );
int fonction2( char * pchar );
 
#endif
---------------------
 
il faut écrire:
 
---------------------
#ifndef HEADER_H
#define HEADER_H
 
if defined _cplusplus
extern "C"
{
#endif
 
int fonction1( int a );
int fonction2( char * pchar );
 
if defined _cplusplus
}
#endif
 
#endif
---------------------
 
 
En fait, le compilo C++ fait une "décoration" du nom de la fonction, contrairement au compilateur C. Cela vient du fait qu'en C++, tu peut tout à fait définir 2 fonctions qui ont le même nom:
int fonction( int a);
int fonction( int a, int b);
 
le compilateur saura quelle fonction choisir en fonction des arguments passés lors de l'appel. Ceci est interdit en C. Pur autoriser cela, le compilateur "décore" le nom des fonctions.
 
 
 
Autre solution: compiler ta lib static avec un compilo C++ et non pas C.
 
 
J'espère que cela t'aidera.
a+

n°141425
DJKurgan
Posté le 21-05-2002 à 09:18:39  profilanswer
 

Ok, merci, mais je compile deja avec "c++" le compilo c++ de
gcc, en fait c'est juste qd je transforme le .c en .cpp, juste
le nom..., faut cependant que je verifie les headers...


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

  lib static

 

Sujets relatifs
[Java Unix] non-static method cannot be referenced from a static ...[C++] Créer une image (static control)
eJAVA: static an static final[JAVA - SWING] pb de discussion entre mes éléments... static ?
[C++] un static + une adresse de site internet[MFC] Changer la police d'un Texte Static
[JAVA] Question de débutant : notion de "static"[C++] Changer la font d'un Static Text
[WIN32] Mettre en couleur du texte StaticComment changer la couleur des Contrôles texte Static en C Win32 Api ?
Plus de sujets relatifs à : lib static


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)