45 votes

De la bibliothèque statique MinGW (.a) à la bibliothèque statique Visual Studio (.lib)

Je suis en train d'utiliser xlsLib (http://xlslib.sourceforge.net/) pour la création de feuilles de calcul Excel à partir d'une application C++. Le problème, c'est que la compilation d'xlsLib, je donne un .un fichier (GCC bibliothèque statique, généré par MinGW). Mais, mon application dépend d'un autre API (PhysX) qui ne compile avec Visual Studio. Ainsi: est-il possible de transformer la GCC bibliothèque statique (xlslib.a) Visual Studio statique fichier de bibliothèque (xlslib.lib)?

35voto

mloskot Points 13971

Les archives des bibliothèques statiques générées avec MinGW sont généralement compatibles avec Visual C++ compilateur/linker. Donc, vous devriez être en mesure de les utiliser directement en ajoutant .a fichiers à l'éditeur de liens d'entrée dans les propriétés de votre projet dans Visual Studio:

  1. Aller à projet Properties (Alt + F7).
  2. Sur la gauche de la boîte, ouvrez Configuration Properties->Linker->Input
  3. Ajouter la liste de tous les .a archives, vous devez utiliser
  4. Vous devrez peut-être ajouter aussi de MinGW libgcc.a bibliothèque

Aussi, il peut se produire des problèmes concernant le mixte C des bibliothèques d'exécution properties of C/C++->Code Generation->Runtime Library, mais cela dépend de votre configuration de build que vous utilisez avec MinGW. Parfois, il est nécessaire de lier l'encontre libmsvcrt.a de MinGW, mais en beaucoup (sinon la plupart) des cas, il provoque des problèmes.

Enfin, ce mixte de MinGW et Visual C++ liaison fonctionne, en général, mais pour les modules C et il ne fonctionne pas pour le C++, autant que je sache.

4voto

gnaggnoyil Points 11

mais utiliser .a empêche mon .exe de déboguer "Les informations de débogage sont introuvables". - entropie le 22 mai à 12h27

c'est parce que la bibliothèque .a n'inclut pas les informations de débogage nécessaires au débogage. vous devez indiquer au compilateur d'ajouter des informations de débogage lors de la compilation si vous souhaitez le déboguer. pour beaucoup, vous devez ajouter " -g " à CFLAGS lorsque vous exécutez " make ", comme " make CFLAGS="-g" "

0voto

Je n'ai pas testé cela moi-même

http://www.agner.org/optimize/#objconv

0voto

laura Points 4445

Voici deux ressources que j'ai trouvées utiles:

[Snip, mauvais lien]

http://old.nabble.com/using-VC%2B%2B-.lib-with-mingw-td23151303.html

Modifier. Je ne trouve pas le lien que je cherchais. En attendant, consultez celui-ci: http://www.willus.com/mingw/yongweiwu_stdcall.html

-1voto

Nicolás Points 4959

Autant que je sache, c'est la même chose. De Visual Studio .lib des fichiers sont également ar des archives contenant des fichiers d'objets. Avez-vous essayé de renommer le fichier? :)

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