- J'ai une librairie statique "Midi" qui est en fait un wrapper orienté objet des fonctions de windows de winmm d'acces au midi.
- J'ai une application "SightReader" qui utilise cette librairie.
J'utilise Mingw32.
Pour créer ma librairie statique "Midi":
* Je compile chaque fichier séparement, obtenant a chaque fois un .obj.
* Je fais "ar cr libMidi.a *.obj" et j'obtiens le fichier de librairie statique.
Pour créer "SightReader" :
* Je compile chaque fichier séparement, obtenant a chaque fois un .obj.
* Je fais "g++ -o SightReader.exe -lmidi *.obj"
Il trouve bien "libmidi.a" car il ne me donne pas de message d'erreur ( j'ai omis pour des raisons de lisibilité de mettre le path des librairies, mais dans mon makefile il y est et il est correct )
Le probleme est qu'a la compilation de "SightReader" j'ai des erreur de linkage, du type :
"Main.obj(.text+0x42):Main.cpp: undefined reference to `midi::CShortMsg::GetData1() const' "
Si je ne précise pas -lmidi et que je prends les .obj de "Midi" et que je les met dans le dossier de "SightReader", car marche. Donc les noms des fonctions sont bons.
Si vous avez une idée...
edit : j'ai une erreur de linkage par fonction. Donc c'est bien un probleme de librairie et pas de code.
Message édité par Ace17 le 24-08-2003 à 15:56:02