begin process at 2012 05 29 05:34:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

Autre

 > 

Exporter une classe dans une librairie statique


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Exporter une classe dans une librairie statique

samedi 30 décembre 2006 à 00:29:22 | Exporter une classe dans une librairie statique

nightlord666

Membre Club
Bonjour !

Je vient de commencer la programmation en C++ sous Linux, et je suis confronté à un problème. J'aimerais exporter une classe C++ dans une librairie statique, mais je n'y arrive pas...

Je vous donne le code, et les lignes de commandes pour la compilation :

  1 // CFile.h
  2 // Fichier header principal de la librairie CFile
  3 //
  4 // Fichier qui définit la classe CFile, et qui inclut les headers nécessaires à son bon fonctionnement
  5
  6 #if !defined(__CFILE_LIB_H)
  7 #define __CFILE_LIB_H
  8
  9 #include <iostream>
 10
 11 class CFile
 12 {
 13         public: CFile();
 14         public: ~CFile();
 15 };
 16
 17 #endif //!defined(__CFILE_LIB_H)


  1 // CFile.cpp
  2 // Le fichier principal de la librairie CFile.
  3 //
  4 // C'est dans ce fichier que va être implémentée la classe CFile de la librairie.
  5
  6 #include "CFile.h"
  7
  8 CFile::CFile()
  9 {
 10         std::cout << "OK !" << std::endl;
 11 }
 12
 13 CFile::~CFile()
 14 {
 15         std::cout << "Deja ma mort :'(" << std::endl;
 16 }


  1 # Makefile
  2 # Fichier de compilation de la librairie CFile
  3 #
  4 # Ecrit par Pierre BOURDON, le 29/12/06
  5
  6 # Compilateur C++ du système
  7 HOSTCXX = g++
  8 CXXDEPENDANT = -c
  9 CXXOUTPUT = -o
 10
 11 # Utilitaire de librairie du système
 12 HOSTAR = ar
 13 HOSTRANLIB = ranlib
 14 ARCREATE = rcs
 15
 16 # Fichiers à compiler pour obtenir le projet complet
 17 # TODO: Rajouter içi les fichiers au fur et à mesure
 18 TOCOMPILE = CFile.cpp
 19
 20 # Option à passer pour compiler en exportant les fonctions
 21 EXPORT = -DEXPORT_FOR_CFILE
 22
 23 # Fichiers à linker obtenus par compilation des fichiers .cpp
 24 # Attention: Ne pas modifier, ils sont obtenus automatiquement avec la liste ci-dessus
 25 OBJECTS = $(TOCOMPILE:.cpp=.o)
 26
 27 # Le nom du fichier de sortie : par défaut libcfile.a
 28 OUTPUT = libcfile.a
 29
 30 # Règles de compilation
 31
 32 # Le fichier de sortie : à besoin de tous les fichiers objets du projet
 33 $(OUTPUT) : $(OBJECTS)
 34         $(HOSTAR) $(ARCREATE) $(OUTPUT) $(OBJECTS)
 35         $(HOSTRANLIB) $(OUTPUT)
 36
 37 # clean : la règle permettant de nettoyer le répertoire
 38 clean :
 39         rm -f $(OBJECTS)
 40
 41 # rmproper : nettoie tout, même le binaire produit !
 42 rmproper : clean
 43         rm -f $(OUTPUT)
 44
 45 # all : construit tout (dans notre cas, seulement $(OUTPUT)
 46 all : $(OUTPUT)
 47
 48 # Les règles de compilation des différents fichiers du projet
 49 CFile.o : CFile.cpp CFile.h
 50         $(HOSTCXX) $(CXXDEPENDANT) $(EXPORT) $(CXXOUTPUT) CFile.o CFile.cpp


Quand je compile mon projet de test, je met bien ma librairie statique (-L/chemin/vers/librairie -lcfile), et il me met des "undefined reference to CFile::CFile()" et "CFile::~CFile()"...

J'espère que quelqu'un pourra m'aider...


Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
jeudi 18 janvier 2007 à 08:02:10 | Re : Exporter une classe dans une librairie statique

exar

Membre Club
J'ai pas essayé, mais essaie de remplacer
#if !defined(__CFILE_LIB_H)

par:
#ifndef __CFILE_LIB_H

Petit commentaire: tu n'es pas obligé de spécifier public à chaque fois. P. ex.:
class ClassA{
private:
   int _donnee1;
   char _donnee2;
   float _donnee3;
public:
   ClassA();
   ~ClassA();
};

_donne1, _donne2 et _donne3 seront privés, le coinstructeur et le destructeur seront publics.  Si tu ne précise rien, une méthode ou une donnée membre sont par défaut private.

Bonne continuation.


Cette discussion est classée dans : fichier, fichiers, output, librairie, cfile


Répondre à ce message

Sujets en rapport avec ce message

Fichiers internets temporaires : CFile vs *File [ par iguypouf ] Cela fait plusieurs mois que je cherche la raison d'incompatibilité de mon appli avec IE7, alors qu'IE6 marchait sans problème.En gros, une interface Utilisation de Fichiers txt en C++.net [ par zebulon88 ] Bonjour à tous,j'ai deux questions :- J'utilise visual c++.net express 2008, et je cherche à lire uniquement les dernières lignes d'un fichier txt trè remplacer une chaine de caractères dans un fichier htm [ par mouloudh ] Bonjour la communauté,Je travaille sur un projet qui me permettrait de modifier le contenu d'un fichier html, sans passer par un éditeur html.  J'en s Copier plusieurs fichiers dans un seul fichier [ par novice2008 ] Bonjour à tous !J'ai un problème avec des fichiers de données : comme je les importe sur excel et que l'asssistant d'importation me demande de recréer comment désactiver lecture seul sur dique FAT32 [ par mikouRoux ] Salut,J'essaye d'installer indexHiBit (CMS très simple) en local pour pouvoir y faire des modificationsPour pouvoir l'installer (http://www.indexhibit


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,011 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales