2010-02-16 2 views
12

Je me demande s'il existe un moyen de savoir quels indicateurs de compilateur/éditeur de liens g++ ont été utilisés pour créer une bibliothèque binaire uniquement. Par exemple, il peut y avoir une bibliothèque partagée tierce (seuls les fichiers .h/.so sont présents). Donc, je pense que ce serait une bonne idée d'utiliser les mêmes drapeaux g ++ lors de la compilation et de la liaison de ma propre application (c'est-à-dire en utilisant la bibliothèque tierce binaire seulement).Puis-je déterminer les indicateurs de compilateur/éditeur de liens utilisés pour créer une bibliothèque partagée binaire uniquement?

Plus précisément, je vous demande de drapeaux du compilateur comme

  • -fno-inline
  • -pthreads
  • -mtune = arc
  • -O2

et aussi il serait d'intérêt que les indicateurs de liaison ont été utilisés:

  • -fpic ou -fPIC
  • -fexceptions
  • -pthreads

et ainsi de suite.

Répondre

0

Je ne crois pas car il ne semble pas y avoir une section dans le format ELF pour cette information. Sous Linux, si vous utilisez 'readelf -a' pour vider toutes les informations, il n'y a rien sur la façon dont le fichier a été ainsi.

1

Il n'y a pas de façon systématique de le faire. Vous pouvez voir si la librairie est liée à libpthread pour indiquer si -pthreads a été utilisée. Pour le code PIC/non-PIC, vous pouvez essayer this. Le niveau d'optimisation, le réglage et d'autres seront beaucoup plus difficiles à déterminer.

Questions connexes