Il y a une virgule ici: -Wl,--export-dynamic (je ne sais pas si c'est obligatoire) mais pourquoi en as tu besoin?
oui, je tappait ca de tete ;-) mais la virgule est bien presente J'ai un projet à base de modules dynamiques qui fonctionne très bien sans. en fait dans l'idee, les modules utilisent des symboles tels que des singletons qui sont definis dans le core du serveur et le --export-dynamic permet de resoudre ces symboles uniquement au loading du module en allant tapper dans ceux du serveur. C'est tout du moins le fonctionnement auquel j'etait parvenu en utilisant un Makefile a la mano dans lequel je precisait juste l'export-dynamic au moment du link (la difference etait que tout les .o etaient compiles et ensuite ils etaient tous linkes d'un coup -- ca ne passait pas par des librairies temporares comme c'est le cas avec mes Makefiles.am) As tu lancé libtoolize? (peut être qu'un make maintainer-clean aiderait
aussi)
J'ai lance un libtoolize, mais je n'ai pas vu beaucoup de difference (il n'y a pas eu d'output). Je testerait le make maintainer-clean, mais a chaque fois que je fait un test, je recompile tout les objs (le core du serveur et le module que je test ne sont pas tres longs a compiler) Sinon c'est pas très clair, comment compiles tu les modules et comment les
utilises tu ? (avec lt_dlopen?) Le makefile complet serait utile (si il ne fait pas 15 pages :)
Voici donc les extraits de mes differents fichiers : * Configure.in a la racine du projet: AC_INIT(Core, 1.0, [EMAIL PROTECTED]) AM_INIT_AUTOMAKE(Core, 1.0) AC_PROG_CXX AC_PROG_LIBTOOL AC_DEFINE(TIXML_USE_STL) AC_DEFINE(BOOST_ALL_NO_LIB) AC_PROG_INSTALL AC_OUTPUT( \ ./Makefile \ ./src/Makefile \ ./src/core/Makefile \ ./src/core/common/Makefile \ ./src/include/Makefile \ ./src/modules/Makefile \ ./src/modules/module1/Makefile \ ) * Le Makefile.am a la racine SUBDIRS = src * Le Makefile.am dans ./src SUBDIRS = \ core \ include \ modules * Le Makefile.am dans ./src/core (c'est la ou la compile du core se fait, et c'est la qu'il y a le main.cpp et les sous repertoires qui separent le code du core. je simplifie l'arborescence pour des questions de lisibilite) SUBDIRS = common bindir = @prefix@/bin bin_PROGRAMS = core coredir = @prefix@/bin core_SOURCES = main.cpp core_LDADD = common/libcorecommon.a INCLUDES = \ [EMAIL PROTECTED]@/src/include \ -I./common LIBS = -lpthread -ldl -Wl,--export-dynamic * Le Makefile.am dans le repertoire ./src/core/common/ (celui qui est sense compiler la libcorecommon.a qui sera linkee ensuite avec le main.cpp (.o) ) -- C'est dans ce repertoire que le Parser et le Logger sont des singletons et donc j'aurais besoin que les symboles soient accessibles depuis mes modules. noinst_LIBRARIES = libcorecommon.a libcorecommon_a_SOURCES = \ Parser.h \ Parser.cpp \ Logger.h \ Logger.cpp \ Utils.h \ Utils.cpp INCLUDES = [EMAIL PROTECTED]@/src/include/ * et enfin le Makefile.am d'un des modules ( ./src/modules/module1/ ) lib_LTLIBRARIES = mod1.la mod1_la_SOURCES = \ header1.h \ source1.cpp \ header2.h \ source2.cpp mod1_la_LDFLAGS = -version-info 1:0:0 INCLUDES = \ [EMAIL PROTECTED]@/src/include \ [EMAIL PROTECTED]@/src/core/common Voila, je pense que le probleme viens d'un de mes fichiers ou d'une etape que je fait mal, mais comme je suis debutant en Autotools, je ne suis pas encore au fait des bonnes pratiques. deux questions bonus pour terminer : 1) pour resoudre mon probleme de compilation et d'export-dynamic je pourrais passer par un Makefile.am dans ./src/core/ qui compilerait tout mes fichiers (meme ceux qui sont dans des sous-repertoires) en une seule fois. mais est-ce vraiment propre? 2) quelles difference entre automake-autoconf-libtool et autotools? les premiers font-ils partie du second? Merci d'avance -- 105 116 039 115 032 110 111 116 032 097 032 098 117 103 044 032 105 116 039 115 032 097 032 102 101 097 116 117 114 101

