2017-01-09 1 views
0

J'ai essayé de comprendre celui-ci pour les deux derniers jours et je n'ai rien trouvé sur le web..lib généré lors de la compilation du programme .exe

J'ai une série de projets qui génèrent des fichiers .exe à l'aide de Visual Studio 2012 (le comportement se produit également sous des versions plus récentes). J'utilise Property Sheets pour définir toutes les options de compilation; par conséquent, tous mes commutateurs de liaison CL & sont cohérents tout au long de mes projets .exe. J'ai vérifié qu'aucun de ces commutateurs n'a été localement écrasé dans le projet Problèmes.

Donc le problème que j'ai est que 2 de mes 41 projets génèrent des fichiers .lib & .exp AS BIEN que le fichier .exe désiré. Je n'ai jamais vu cela avant et je ne comprends pas très bien ce qui serait nécessaire pour .exe. C'est comme si l'éditeur de liens traitait momentanément les projets en .dll, mais générait finalement un fichier .exe.

Est-ce que quelqu'un pourrait savoir si cela pourrait être un comportement, dans certaines conditions?

Merci pour l'aide.

J'ai trouvé ce lien, qui décrit à peu près exactement ce que je reçois. Mais la solution ne semble pas s'appliquer dans mon cas.

Why does my Visual C++ .exe project build create .lib and .exp files?

+0

Toujours détester quand les gens votent et ne fournissent aucune explication/raison. Merci pour cette rétroaction insignifiante. – ThermoX

+1

Le downvote est probablement parce que vous n'avez pas donné assez d'informations pour reproduire le problème. –

+0

Il pourrait être .. La question était assez générique parce que je cherchais des possibilités quant à quand, en général, un exe peut également générer ces fichiers. À la fin, cependant, il a fini par être la même raison que celle mentionnée dans le lien. Maintenant, je n'ai aucun problème avec les gens à voter mes questions * fourni * qu'ils donnent une explication pour cela. Merci pour votre contribution. – ThermoX

Répondre

1

D'accord ... Après beaucoup plus creuser, j'ai enfin trouvé le problème.

Le problème était en effet lié à celui mentionné dans le lien que j'avais fourni. Quelque part, sous une ancienne bibliothèque Sun Microsystem (liée à portmap), il y avait 1 fonction qui contenait l'instruction __declspec (dllexport). Même si cette bibliothèque est utilisée par tous mes projets .exe, seuls les 2 programmes problématiques appelaient indirectement la fonction exportée.

Rétrospectivement ... J'aurais dû simplement regarder le fichier .lib directement. Il a montré quelle fonction unique était exportée.