2017-01-09 98 views
0

我一直在试图找出最后几天的这一个,我没有发现任何与网络相关的东西。编译.exe程序时生成的.lib

我有一系列使用Visual Studio 2012生成.exe文件的项目(该行为也发生在新版本中)。我使用Property Sheets来设置所有编译选项;因此,我所有的.exe项目中,我所有的CL & Link交换机都是一致的。我已经证实,在问题项目中没有任何交换机在本地被覆盖。

所以我的问题是,我的41个项目中的2个生成.lib & .exp文件以及所需的.exe文件。我从来没有见过这个,我不太明白为什么那些将需要的.exe。就好像链接器暂时将项目视为.dll一样,但最终会生成一个.exe。

有人会知道这是否可以预期的行为,在某些条件下?

感谢您的帮助。

我发现这个链接,这几乎恰恰描述了我所得到的。但解决方案似乎并不适用于我的情况。

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

+0

当人们投票并且不提供任何解释/理由时,总是讨厌。感谢那无意义的反馈。 – ThermoX

+1

downvote可能是因为您没有提供足够的信息来重现问题。 –

+0

它可能是..这个问题是相当通用的,因为我一直在寻找可能性,一般来说,一个exe文件也可以生成这些文件。然而,最后它最终与链接中提到的原因一样。现在,我没有问题,人们投我的问题*提供*,他们给出了解释。感谢您的输入。 – ThermoX

回答

1

好吧......有更多的挖掘后,我终于发现了问题。

该问题确实与我提供的链接中提到的问题有关。某处,在一个旧的Sun Microsystem库(与portmap相关)下,有一个函数具有__declspec(dllexport)语句。即使这个库被全部使用我的.exe项目,只有2个问题程序间接调用导出的函数。

回想起来......我应该直接查看.lib文件。它显示了哪个单一功能被导出。