Comment raconter l'MinGW de l'éditeur de liens ne pas exporter tous les symboles?

Je suis en train de construire une dynamique Windows de la bibliothèque à l'aide de la chaîne de compilation MinGW.

Pour construire cette bibliothèque, je suis lié statiquement à d'autres 2, qui offre une API et j'ai un .def fichier où j'ai écrit le seul symbole que je veux être exporté dans ma bibliothèque.

Le problème est que GCC est l'exportation de tous les symboles, y compris ceux provenant des bibliothèques, je suis un lien vers. Est-il de toute façon de dire à l'éditeur de liens juste pour exporter les symboles dans la def fichier?

Je sais qu'il existe l'option --export-all-symbols mais il ne semble pas être le face à elle.

Dès maintenant la dernière ligne du script de construction a cette structure:

g++ -shared CXXFLAGS DEFINES INCLUDES -o library.dll library.cpp DEF_FILE \
OBJECT_FILES LIBS -Wl,--enable-stdcall-fixup

EDIT: Dans le docs à propos de l'éditeur de liens il est dit que --export-all-symbols est le comportement par défaut et qu'il est désactivé lorsque vous n'utilisez pas cette option explicitement si vous fournissez un def fichier, sauf quand il n'en est rien; les symboles dans la 3ème partie libs sont exportés de toute façon.

EDIT: Ajout de l'option --exclude-libs LIBS ou –exclude-symbols SYMBOLS n'empêche pas les symboles de la bibliothèque d'être exportés.

  • --exclude-libs ALL option serait intéressant d'essayer de
InformationsquelleAutor James R. | 2010-05-11