Bonjour,
J'ai créer une librairie qui utilise les librairie tinyxml et libjpeg.
Ayant seulement envie d'intégrer et de distribué ma librairie j'ai decidé de faire la chose suivant:
Je compile tinyxml en static
Je compile libjpeg en static
Puis je compile malib en dynamic en incluant les versions deux autres librairies:
Sous MinGW les commandes pour linker donnent:
C:\MinGW\bin\ar.exe cr ..\lib\libtinyxml.a tinystr.cpp.obj tinyxml.cpp.obj \tinyxmlerror.cpp.obj tinyxmlparser.cpp.obj
C:\MinGW\bin\ranlib.exe ..\lib\libtinyxml.a
meme chose pour jpeg
C:\MinGW\bin\gcc.exe -shared -o bin\malib.dll -Wl,--out-implib,lib\malib.dll.a -Wl,--major-image-version,1,--minor-image-version,0 obj1.o obj2.o obj3.o 3rdparty\lib\liblibjpeg.a 3rdparty\lib\libtinyxml.a
Au final quand je créer mon programme je doit utiliser:
C:\MinGW\bin\g++.exe -Wall main.cpp.obj -o bin\AdVisOr.exe -Wl,--out-implib,lib\libAdVisOr.dll.a -Wl,--major-image-version,0,--minor-image-version,0 lib\malib.dll.a 3rdparty\lib\liblibjpeg.a 3rdparty\lib\libtinyxml.a
alors que j'aimerais ne pas avoir a inclure 3rdparty\lib\liblibjpeg.a 3rdparty\lib\libtinyxml.a, car du coup cela me désavantage de devoir inclure de nouveaux les librairies static.
Je ne trouve pas grand chose sur le Web et j'utilise Cmake pour la compilation.
Partager