3 votes

Eclipse gère les bibliothèques liées statiques et dynamiques en même temps.

J'utilise la fonctionnalité de création gérée d'Eclipse CDT. La création du projet en utilisant uniquement des bibliothèques dynamiques fonctionne comme prévu. Mais la bibliothèque boost_unit_test_framework devrait être liée statiquement, car elle contient la fonction principale. En ligne de commande, il n'y a aucun problème à lier les bibliothèques dynamiques et statiques dans un mélange. C'est donc un exemple qui fonctionne :

g++ -L../Debug -L../boost/lib -o "Test" ./Test.o -ldynLib -Wl,-Bstatic -lboost_unit_test_framework -Wl,-Bdynamic

La dynlib et les bibliothèques standard comme libc sont liées dynamiquement et le boost_unit_test_framework est lié statiquement. MAIS comment puis-je entrer cette information dans les paramètres du projet ? Je ne vois aucun moyen.

Il peut être possible de marquer cette bibliothèque dans chaque projet pour une liaison statique, par exemple dans un endroit global. Il existe une convention utilisée par QNX ([manual]). Il est possible d'utiliser LIBPREF_library et LIBPOST_library pour ajouter des options avant ou après la bibliothèque spécifiée.

Mise à jour : Je n'ai toujours aucune idée de la façon de résoudre le problème décrit. Mais en attendant, j'ai changé mon système de construction de Managed Make à CMake. Et en plus j'utilise maintenant le Qt Creator parce qu'il est capable d'indexer le boost et ne gèle pas l'interface utilisateur pendant la mise à jour de certaines structures internes ...

[manuel] http://www.qnx.com/developers/docs/6.3.0SP3/neutrino/prog/make_convent.html#USEMAC

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X